2005-04-13 Dick Porter <dick@ximian.com>
[mono.git] / mono / io-layer / ChangeLog
1 2005-04-13  Dick Porter  <dick@ximian.com>
2
3         * io.c (FindFirstFile): Fix bugs introduced with the merge (bug
4         74586)
5
6 2005-04-12  Dick Porter  <dick@ximian.com>
7         
8         The daemon-less io-layer.  Extensive lowlevel changes in
9         handles.c, requiring some corresponding changes in other files
10         calling these functions.  Private_foo structures have been
11         eliminated.
12
13         File descriptor handling differences account for most of the
14         changes in io.c and sockets.c.
15
16         Other highlights:
17         
18         * mutexes.c: Named mutexes are now a distinct type.
19         * atomic.h: Fix a PPC uninitialised variable warning.
20         * wait.c: Check conditions before waiting on a condition variable.
21         * processes.c: Handle process fork and wait without a daemon
22         (though this has the limitation of only being able to wait for
23         child processes.)
24
25 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26
27         * io-private.h:
28         * threads.c:
29         * threads.h:
30         * io.c:
31         * sockets.c:
32         * sockets.h: removed dead code that deals with async IO.
33
34 2005-03-30  Zoltan Varga  <vargaz@freemail.hu>
35
36         * atomic.c (InterlockedIncrement): Fix fallback implementation of
37         InterlockedIncrement and InterlockedDecrement. Fixes #74228.
38
39 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
40
41         * io-layer.h: Add required header files for compiling with VS.NET.
42
43 2005-03-17 Miguel de Icaza <miguel@novell.com>
44
45         * io.c: don't fail on NFS when there are no more locks available.
46
47 2005-03-09  Dick Porter  <dick@ximian.com>
48
49         * error.c (_wapi_get_win32_file_error): ENFILE and EMFILE should
50         map to ERROR_TOO_MANY_OPEN_FILES, not ERROR_NO_MORE_FILES.  Fixes
51         bug 72671.
52
53 2005-03-09  Dick Porter  <dick@ximian.com>
54
55         * daemon.c (process_process_fork): Initialise the handle data
56         before using it in the error case.  This is probably the error
57         we're working around in the previous change.  Spotted by Taru Jain
58         <tjain@novell.com> and Hemanth Yamijala <YHemanth@novell.com>.
59
60 2005-03-07  Dick Porter  <dick@ximian.com>
61
62         * daemon.c: It looks like g_shell_parse_argv() can return
63         argv[0]=NULL somehow, yet still not give an error.  Make sure we
64         don't pass NULL to strrchr(), working around a segfault that
65         showed up on ZLM testing.
66
67 2005-03-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
68
69         * sockets.c: translate EINPROGRESS to EWOULDBLOCK in connect. This is
70         the expected error code showed by the test case in bug #73053.
71
72 2005-02-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
73
74         * io.c: another leftover.
75
76 Fri Feb 18 17:37:29 CET 2005 Paolo Molaro <lupus@ximian.com>
77
78         * io.c: fixed logic in checking errno in rev 40815.
79
80 Fri Feb 18 16:00:29 CET 2005 Paolo Molaro <lupus@ximian.com>
81
82         * threads.c: we don't depend on the GC checking tls
83         slots anymore.
84         * processes.c: remove unused ref to GC headers.
85
86 Thu Feb 17 19:57:11 CET 2005 Paolo Molaro <lupus@ximian.com>
87
88         * io.c: remove _wapi_thread_cur_apc_pending () checks
89         when the siscall should return immediatly and handle
90         the case when a syscall is interrupted without
91         erroring out, but returning a 0 read/write if possible.
92         Still the cases of read from file need to be handled.
93
94 Tue Feb 8 18:28:11 CET 2005 Paolo Molaro <lupus@ximian.com>
95
96         * threads.c: make people test with 1 MB stack per thread.
97
98 2005-01-17  Dick Porter  <dick@ximian.com>
99
100         * timefuncs.h: Make WapiFileTime endian-aware, as it's often
101         cast to and from 64bit ints.  Fixes bug 71213.
102
103 2005-01-11  Dick Porter  <dick@ximian.com>
104
105         * error.c (errno_to_WSA): Add EADDRNOTAVAIL error code
106         translation.
107
108 Mon Jan 10 16:15:19 EST 2005 Neale Ferguson <nealeferguson@earthlink.net>
109
110         * atomic.h: Fix functions on s390.
111
112 Mon Jan 10 20:30:19 CET 2005 Paolo Molaro <lupus@ximian.com>
113
114         * atomic.h: fix some functions on ppc (tests/interlocked.cs).
115
116 2005-01-10  Dick Porter  <dick@ximian.com>
117
118         * misc.c (_wapi_calc_timeout): Guard against overflow when
119         calculating timeouts.  This makes waiting with a large
120         (Int32.MaxValue) timeout not return immediately.
121
122 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
123
124         * io.c (io_ops): make this `const' so it is shareable (well, only
125         really shareable if it is statically linked...)
126
127 Mon Dec 20 11:58:33 CET 2004 Paolo Molaro <lupus@ximian.com>
128
129         * threads.c, threads.h: add accessor to get the pthread_key_t for
130         a tls id.
131
132 2004-12-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
133
134         * io.c: check for the existence of 'dest' and set ERROR_ALREADY_EXISTS
135         if it exists and is not the same as 'src'.
136
137 2004-12-01 Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
138
139         * atomic.h : Fix InterlockedCompareExchange for s390/s390x.
140
141 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
142
143         * processes.c: unquote the cmd path, allow for ' or " when quoting and
144         pass the quoted program name to the daemon, otherwise the call to
145         g_shell_unquote in the daemon will break things up.
146
147 2004-10-14  Dick Porter  <dick@ximian.com>
148
149         * sockets.c (_wapi_accept): Revert the previous change.  We now
150         set the accepted socket to have the same blocking status as the
151         listening socket in managed code.  This follows MS behaviour.
152         
153 2004-10-14  Dick Porter  <dick@ximian.com>
154
155         * sockets.c (_wapi_accept): On Darwin, make sure a newly
156         accept()ed socket is blocking.  Fixes bug 67355, patch by
157         grompf@sublimeintervention.com.
158
159 2004-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
160
161         * system.c: check the number of online processors instead of the
162         existing ones. Sanitize return value if it's an error.
163
164 2004-10-03 Ben Maurer  <bmaurer@ximian.com>
165
166         * system.c: Add support for getting the # of cpus.
167
168 2004-09-28  Dick Porter  <dick@ximian.com>
169
170         * io.c (pipe_close_private): Fix one small typo in the last change
171         that totally hosed process creation with redirected pipes.
172
173 2004-09-24  Dick Porter  <dick@ximian.com>
174
175         * wapi-private.h: 
176         * sockets.c: 
177         * socket-private.h: 
178         * io.c: 
179         * io-private.h: 
180         * handles-private.h: Cope when a file descriptor is reused while
181         the handle that thought it owned it is still referenced, instead
182         of asserting.  Probably fixes bug 66479, though we've been unable
183         to reproduce it.
184
185 2004-09-09  Dick Porter  <dick@ximian.com>
186
187         * error.c:
188         * io.c: Set error codes everywhere.
189
190 2004-09-06  Dick Porter  <dick@ximian.com>
191
192         * handles.c (_wapi_handle_unref): Reset the private record's type
193         (CloseHandle): Check for a fd mapping failure, and return FALSE.
194         (_wapi_handle_process_fork): Fix long-standing bug in checking
195         handle return values.  Also do the required bookkeeping with the
196         new process's handles.
197
198         * daemon.c: When creating a new process's handles, check whether
199         the shared space needs to be increased
200
201 2004-09-05  Zoltan Varga  <vargaz@freemail.hu>
202
203         * shared.c (_wapi_shm_file): Fix leaking of filename.
204
205 2004-08-19  Dick Porter  <dick@ximian.com>
206
207         * handles.c (_wapi_handle_count_signalled_handles): Fix thinko
208         introduced with the fd offset stuff: unlock handles properly when
209         backing off.  Fixes the monologue hang at exit.
210
211 2004-08-18  Dick Porter  <dick@ximian.com>
212
213         * sockets.c: 
214         * io.c: Check that new fds fit in the table, return error if not
215
216         * daemon.c (_wapi_daemon_main): 
217         * handles.c (shared_init): Have all processes agree on a size for
218         the fd table.
219
220 2004-08-17  Dick Porter  <dick@ximian.com>
221
222         * daemon.c (process_new): 
223         * handles.c (_wapi_handle_new_internal): Cope when the space
224         reserved for file descriptors is larger than the shared segment
225         size.  Fixes the crash reported when running mono under gdb on
226         macosx.
227
228 2004-08-16  Dick Porter  <dick@ximian.com>
229
230         * sockets.c:
231         * io.c:
232         * handles-private.h (_wapi_handle_fd_offset_to_handle): Improve
233         error checking with passed-in file descriptors.
234
235 2004-08-11  Dick Porter  <dick@ximian.com>
236
237         * sockets.c: 
238         * io.c: Returned handle values are the file descriptor the handle
239         encapsulates
240
241         * handles.c: 
242         * handles-private.h: 
243         * daemon.c: Reserve the range of handles that can have the same
244         values as file descriptors.  These won't be used, but the values
245         will be used as file, console, pipe or socket handles.  The fd to
246         handle mapping is done internally and is invisible to users.
247         Fixes bug 61828.
248
249         * wapi-private.h (_WAPI_HANDLE_VERSION): Increment, because we now
250         reserve a chunk of handle space.
251
252 2004-08-04  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
253
254         * atomic.h: add support for 64-bit S/390
255
256 2004-07-22  Dick Porter  <dick@ximian.com>
257
258         * timed-thread.c: 
259         * threads.c: Move the destruction of the internal thread data to
260         after the thread has been joined.  Fixes bug 61418.
261
262 2004-07-14  Dick Porter  <dick@ximian.com>
263
264         * wait.c (test_and_own): When not waiting for all handles to
265         become signalled, only own and return the lowest.  All the
266         documentation suggests that the old way was correct, but
267         experimentation shows it actually works like this.  Patch by
268         Sébastien Robitaille
269         (sebastien.robitaille@croesus.com), fixes bug 61511.
270
271 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
272
273         * threads.c: register roots for gc
274
275 2004-07-08  Dick Porter  <dick@ximian.com>
276
277         * io.c (file_seek): If there is a high 32bit offset part, make
278         sure the low part isn't sign-extended.  Set error codes when
279         returning failure.  Fixes bug 61131.
280
281 2004-07-06  Dick Porter  <dick@ximian.com>
282
283         * io.c (file_setfiletime): Check for underflow when converting to
284         time_t values.  Set error codes when returning failure.  Fixes bug
285         60970.
286
287 2004-07-05  Dick Porter  <dick@ximian.com>
288
289         * mutexes.c (mutex_ops_init): Make the named mutex mutex sharable.
290
291         * daemon.c (unref_handle): Only destroy a handle if all processes
292         have released it, not just the current one.  Fixes bug 60887.
293
294 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
295
296         * mono-mutex.h atomic.h: Add G_GNUC_UNUSED to static inline functions
297         to prevent warnings.
298
299 2004-06-24  Dick Porter  <dick@ximian.com>
300
301         * mutexes.c: Indicate when a named mutex was reused
302
303 2004-06-24  Dick Porter  <dick@ximian.com>
304
305         * threads.c (SuspendThread): 
306         * timed-thread.c (_wapi_timed_thread_suspend): Wrap sem_wait in a
307         while loop.  See bug 58161.
308
309 Wed Jun 23 23:29:04 CEST 2004 Paolo Molaro <lupus@ximian.com>
310
311         * io.c: don't use sharemode for on-disk file permissions: it's used
312         for shared access to the open file.
313
314 2004-06-22  Dick Porter  <dick@ximian.com>
315
316         * events.c (CreateEvent): When creating an auto-reset event that
317         is initially owned, make sure the set count starts at 1.
318
319 2004-06-18  Dick Porter  <dick@ximian.com>
320
321         * event-private.h:
322         * events.c: Auto-reset events need to release one thread for each
323         time SetEvent() is called.  Fixes bug 41292.
324
325         * threads.h:
326         * mutex-private.h:
327         * mutexes.c: Scan for mutexes that are still locked by a thread
328         when it exits.  Fixes the MS demo app linked by bug 41292.
329
330         * wait.c (test_and_own): Make sure a handle is signalled before it
331         is owned.
332
333 2004-06-16  Dick Porter  <dick@ximian.com>
334
335         * timed-thread.c: Call the thread cleanup exit routine before taking
336         the join mutex, because this could deadlock if another thread tries
337         to join in the meantime.  This fixes the hang-at-exit problem seen
338         on macos.
339
340 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
341
342         * threads.c: Implemented SleepEx.
343         * threads.h: Fixed SleepEx signature.
344
345 2004-06-03  Miguel de Icaza  <miguel@ximian.com>
346
347         * threads.c: When running under valgrind, do not allocate too much
348         stack, as Valgrind default is 1 meg.
349
350 2004-05-27  Dick Porter  <dick@ximian.com>
351
352         * io.h:
353         * io.c: Implemented LockFile() and UnlockFile()
354
355 2004-05-21  Dick Porter  <dick@ximian.com>
356
357         * io.c (CreateFile): Check for existing share modes when opening
358         a file.
359
360         * handles.c: 
361         * handles-private.h: 
362         * daemon-messages.h: 
363         * daemon.c: Maintain a hash of file share modes, keying on device
364         and inode (to cope with symlinks.)
365
366 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
367
368         * daemon-messages.c: Retry if the communication with the daemon is
369           interrupted by a signal.
370         * io.c, sockets.c: Check for EINTR in every syscall that can be interrumped. 
371           Only return an error in this case if there is something in the apc queue
372           (which means that it is an interruption requested by the "user").
373         * processes.c: Use WaitForSingleObjectEx. No need to pass "alertable" as
374           true since the wait is small.
375         * shared.c: Retry write calls when interrumped by a signal.
376         * timed-thread.h, timed-thread.c: added _wapi_thread_apc_pending, which
377           returns TRUE if there are pending asynchronous calls (APC) for the
378           provided thread. Also added _wapi_thread_dispatch_apc_queue which calls
379           the enqueued APCs. Defined a new struct ApcInfo that holds information
380           about an enqueued APC.
381         * thread-private.h, threads.c: Implemented QueueUserAPC (which does the same
382           as in win32),_wapi_thread_apc_pending and _wapi_thread_dispatch_apc_queue. 
383           These last two methods call the corresponding apc methods in 
384           thread-private using the provided thread handle.
385         * threads.h: Added QueueUserAPC.
386         * uglify.h: Added WapiApcProc (needed by QueueUserAPC).
387         * wait.c, wait.h: Changed WaitForSingleObject to WaitForSingleObjectEx, and
388           WaitForMultipleObjects to WaitForMultipleObjectsEx. Implemented support
389           for APCs in those two methods and also in SleepEx.
390
391 2004-05-17  Dick Porter  <dick@ximian.com>
392
393         * io.c (CopyFile): Speed up.  Fixes bug 57859.
394
395 2004-05-13  Dick Porter  <dick@ximian.com>
396         * mono-mutex.c (mono_mutex_unlock): Return EPERM when the current
397         thread doesn't own the mutex, rather than assert()ing.
398
399 2004-05-11  Dick Porter  <dick@ximian.com>
400
401         * shared.c (_wapi_shm_attach): Cope when a previous daemon startup
402         attempt failed, leaving shared files that look like a daemon is
403         still starting.
404
405 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
406
407         * io.c:
408         (SetFileAttributes): don't the the exec bit if the corresponding read
409         bit is not set.
410
411 2004-05-10  Zoltan Varga  <vargaz@freemail.hu>
412
413         * io.c (FindFirstFile): Fix invalid free.
414
415 2004-05-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
416
417         * io.c: translate from GFileError to errno codes and don't free
418         variables right after calling mono_io_scandir, as we may overwrite
419         errno value.
420
421 2004-05-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
422
423         * io.c: g_dir_open return ENOENT for directories on which we don't have
424         read/execute permission, while returning EPERM for anything below those.
425         So, change ENOENT by EPERM if the directory exists.
426
427 2004-05-07  Dick Porter  <dick@ximian.com>
428
429         * io.c (SetFileAttributes): Don't have failed chmod()s cause a
430         "file not found" error.  Fixes bug 54032.
431         
432 2004-05-07  Dick Porter  <dick@ximian.com>
433
434         * io.c (FindFirstFile): Comment out a windows-compatibility check
435         that breaks when directories have metachars in their names.
436         Workaround for bug 58116.
437
438 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
439
440         * io.c: fixed for FindFirstFile for empty directories. Closes
441         bug #58147.
442
443 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
444
445         * processes.c: set the start time for the current process. Fixes bug
446         #58109.
447
448 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
449
450         * io-private.h: 'namelist' is now a gchar ** in _WapiHandlePrivate_find.
451         * io.c: implemented scandir using glib functions.
452
453 2004-05-04  Dick Porter  <dick@ximian.com>
454
455         * daemon.c (read_message): Return FALSE on error so the GSource
456         callback itself can return FALSE.  Cures the infinite loop poll()
457         warning on MacosX.
458         * shared.c: Fix some daemon startup race conditions.
459
460 2004-04-29  Miguel de Icaza  <miguel@ximian.com>
461
462         * io.c (CopyFile): Use 32k buffers to copy the file instead of 2k,
463         use the stack, do not use dynamic memory.
464
465 2004-04-29  Zoltan Varga  <vargaz@freemail.hu>
466
467         * io.c: Add scandir implementation for platforms which do not have
468         it, like solaris.
469
470 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
471
472         * io.[ch]: implemented GetLogicalDriveStrings.
473
474 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
475
476         * io.c:
477         * sockets.c: use the field name from configure when accessing sigval
478         pointer field. Makes this work on the Mac.
479
480 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
481
482         * atomic.c: (InterlockedExchange) fix typo for
483         mutex name
484
485 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
486
487         * io.c:
488         * sockets.c: added check for sys/aio.h.
489
490 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
491
492         * error.[ch]: added _wapi_get_win32_file_error...
493         * io.c: ... which was _wapi_get_win32_error here.
494         * sockets.c: rename the function calls here too.
495
496 2004-04-28  Dick Porter  <dick@ximian.com>
497
498         * daemon-messages.c: Avoid a deadlock when a thread is killed while
499         waiting for the daemon by using a recursive mutex.  Helps bug 56699.
500
501 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
502
503         * io.c: fixed leak in async_notifier().
504
505         * sockets.[ch]: added AIO support for sockets and fixed WSAIoctl
506         declaration.
507
508         * threads.c: removed old comment.
509
510 2004-04-26  David Waite  <mass@akuma.org>
511
512         * daemon-messages.h:
513         * daemon-private.h
514         * error.h:
515         * io.h:
516         * processes.h:
517         * shared.h:
518         * thread-private.h:
519         * wapi-private.h: remove comma from end of enumeration declarations
520         * status.h: cast unsigned int types to int for enum assignment
521
522 2004-04-26 David Waite <mass@akuma.org>
523
524         * io.c:
525         * timefuncs.c: declare 64-bit constants as long long types (i.e.
526         10ULL)
527
528 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
529
530         * socket-wrappers.h: _wapi_socket == WSASocket now. Added
531         WSA_FLAG_OVERLAPPED.
532
533         * sockets.c: new unused parameters for _wapi_socket.
534
535 2004-04-22  Miguel de Icaza  <miguel@ximian.com>
536
537         * timed-thread.c: Replace sem_init with MONO_SEM_INIT to handle
538         the fact that MacOS X is a piece of junk (sem_init is *defined* in
539         the libc, but they return `not implemented'). 
540
541 2004-04-22  Dick Porter  <dick@ximian.com>
542
543         * handles.c: 
544         * handles-private.h: Reference the handle when it is locked, so
545         that another thread can't blow it away while we're waiting for it
546         to become signalled.
547         
548         * wait.c: 
549         * timed-thread.c: 
550         * threads.c: 
551         * sockets.c: 
552         * semaphores.c: 
553         * mutexes.c: 
554         * mono-mutex.c: 
555         * io.c: 
556         * handles.c: 
557         * handles-private.h: 
558         * events.c: 
559         * error.c: 
560         * daemon-messages.c: 
561         * critical-sections.c: 
562         * atomic.c: Added pthreads cleanup handlers and error asserts
563
564         * shared.c: 
565         * handles.c: Fixed the gcc "variable might be used uninitialised"
566         warnings.  They can't happen, but gcc doesn't know that
567         g_assert()s don't return.
568
569         Fixed the declaration of _wapi_handle_process_kill() so that it
570         expects the correct type for the pid.
571         
572         * threads.c: Removed the TLS_PTHREAD_MUTEX style locking that
573         hasn't been used in ages and just made the code more complex.
574
575 2004-04-17  Zoltan Varga  <vargaz@freemail.hu>
576
577         * processes.c: Include <signal.h> for SIGKILL and SIGILL + fix some
578         warnings. Fixes #57168.
579
580 2004-04-16  Dick Porter  <dick@ximian.com>
581
582         * threads.c (Sleep): Using div(3) with a negative (when signed)
583         numerator causes the quotient to be 0 and the remainder to be the
584         numerator.  This feeds a small negative value to nanosleep(3),
585         which will return immediately and cause a busy wait.  Fixes bug
586         56351.
587
588 2004-04-15  Dick Porter  <dick@ximian.com>
589
590         * io-private.h:
591         * io.c: Rewrite FindFirstFile and FindNextFile using scandir(3)
592         and fnmatch(3) instead of glob(3).  glob() can't cope with being
593         given filenames containing metachars.  This fixes bug 40557.
594
595 2004-04-14  Bernie Solomon  <bernard@ugsolutions.com>
596
597         * security.c: #warning is a GCC-ism
598
599 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
600
601         * security.c: Removed GetUserName as glib g_get_user_name does a
602         better (portability) job. Added ImpersonateLoggedOnUser and
603         RevertToSelf.
604
605 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
606
607         * mono-mutex.h: move pthread_mutex_timedlock declaration to...
608         * mono-mutex.c: ...here. It was causing a warning that prevented
609         libgdiplus compilation.
610
611 2004-04-04  Miguel de Icaza  <miguel@ximian.com>
612
613         * security.c (GetUserName): Make it work on MacOS X
614
615 2004-04-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
616
617         * security.c: use getpwuid_r if available. This one is thread-safe.
618
619 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
620
621         * Makefile.am: Added security.c|h.
622         * security.c: New file for security related functions. Added function
623         GetUserName to fix #56144.
624         * security.h: New. Header file for security.c
625         * wapi.h: Added include for security.h
626
627 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
628
629         * daemon-messages.h: added kill structs.
630
631         * daemon.c: implemented process_process_kill.
632         * handles-private.h:  define process_process_kill.
633         * handles.c: implemented _wapi_handle_process_kill.
634         * processes.[ch]: implemented TerminateProcess.
635
636 2004-03-25  Bernie Solomon  <bernard@ugsolutions.com>
637
638         * daemon.c (rem_fd): On solaris you seem to get an
639         error even after removing the input source so don't
640         try and rem_fd it twice.
641
642 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
643
644         * daemon.c: in process_post_mortem, If the child terminated due to the 
645         receipt of a signal, the exit status must be based on WTERMSIG, since 
646         WEXITSTATUS returns 0 in this case.
647
648 2004-03-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
649
650         * daemon.c: turned a warning into a DEBUG statement. Now we may hit it.
651
652 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
653
654         * daemon.c: only call getdtablesize () once.
655         * processes.c: wait 500 ms to check if execve failed and throw the same
656         exception as MS on failure. Fixes bug #32809.
657
658 2004-03-17  Bernie Solomon  <bernard@ugsolutions.com>
659
660         * io.c (async_notifier): use "union sigval" rather
661         than sigval_t as Solaris doesn't have sigval_t
662         (which isn't in IEEE 1003.1 either).
663
664 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
665
666         * io.c: added debug stuff and removed a few redundant lines in
667         file_write.
668
669 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
670
671         * io-private.h: added new fields for file structure. Declare
672         _wapi_io_add_callback.
673
674         * io.c: added _wapi_get_win32_error, support aio_read/write in
675         file_read/write. Implemented _wapi_io_add_callback, which is where
676         BindHandle ends up.
677         
678         * io.h: added new fields for WapiOverlapped and typedef for the
679         callback.
680
681         * processes.c: fixed off-by-one bug when handling environment variables 
682         passed in.
683
684         * threads.[ch]: implemented BindIoCompletionCallback.
685
686         * uglify.h: added typedef for LPOVERLAPPED_COMPLETION_ROUTINE.
687
688 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
689
690         * socket-wrappers.h: Remove extra semicolon.
691
692 2004-03-03  Dave Camp  <dave@ximian.com>
693
694         * daemon.c: (add_fd), (fd_activity), (_wapi_daemon_main):
695         Use a new main context.
696
697 2004-03-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
698
699         * io.c:
700         (GetFileAttributes): set the error depending on errno instead of
701         setting ERROR_FILE_NOT_FOUND always. See bug #55160.
702
703 2004-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
704
705         * io.c:
706         (CopyFile): free the buffer on error.
707         * sockets.c:
708         (WSAIoctl): free the buffer on error.
709
710 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
711
712         * error.c: fixed mapping for EPROTONOSUPPORT and ESOCKTNOSUPPORT.
713
714         * sockets.[ch]: retry creating the socket for AF_INET, SOCK_RAW
715         using IP protocol with IP over IP. Implemented WSAIoctl UNIX-style.
716
717 2004-01-27  Bernie Solomon  <bernard@ugsolutions.com>
718
719         * shared.c (_wapi_shm_file): add hostname
720         to shared data file names to handle NFS mounted
721         .wapi directories.
722
723 Mon Jan 26 16:15:03 CET 2004 Paolo Molaro <lupus@ximian.com>
724
725         * sockets.h: remove obsolete soklen_t typedef.
726
727 Fri Jan 23 21:07:02 CET 2004 Paolo Molaro <lupus@ximian.com>
728
729         * socket-wrappers.h, sockets.h, sockets.c, Makefile.am: move socket
730         wrappers to its own non-installed header file.
731
732 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
733
734         * io.c:
735         (FindFirstFile): unlock the handle if FindNextFile fails.
736         (FindNextFile): g_free a couple of pointers before retrying.
737
738         * wait.c:
739         (WaitForMultipleObjects): if only one handle provided, use
740         WaitForSingleObject.
741
742 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
743
744         * handles-private.h: (_wapi_handle_type) check
745         for segment in range before using it
746
747 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
748
749         * thread-private.h: _wapi_thread_ops is now const
750         must match .c file.
751
752 Mon Dec 22 18:29:03 CET 2003 Paolo Molaro <lupus@ximian.com>
753
754         * threads.c, timed-thread.c, timed-thread.h: use mach
755         semaphores on Darwin (MacOSX) since the posix ones
756         are mostly broken there (threads are not created suspended
757         and they can start executing before they are fully initialized
758         like in tests/thread-static.cs).
759
760 Mon Dec 22 17:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
761
762         * atomic.h: ppc fixes.
763
764 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
765
766         * handles.c: remove my bad use of MONO_ZERO_ARRAY_LENGTH
767         in HDRSIZE 
768
769 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
770
771         * shared.c: (_wapi_shm_open) make scratch file
772         not have to immediately regrow to avoid remaps
773         (HPUX can't cope with these).
774         (_wapi_shm_attach) use actual size of file
775         to set scratch data_len for the creating process.
776
777         * handles.c: (_wapi_handle_new_internal) make
778         sure mutex & cond var are initialized even for
779         non process shared ones. 
780         (_wapi_handle_unref) always call destroy 
781         routines on mutex & cond var
782
783 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
784
785         * daemon.c: change channel data structure so
786         input sources are removed from glib event loop
787         properly. xsp works better on Solaris and 
788         fixes #51278
789
790 2003-12-12  Bernie Solomon  <bernard@ugsolutions.com>
791
792         * wapi-private.h: Replace G_GNUC_PRETTY_FUNCTION
793         definition with file & line number for non-GCC
794         compiles.
795
796 2003-12-08  Bernie Solomon  <bernard@ugsolutions.com>
797
798         * Makefile.am: make sure hppa_atomic.s is in distribution
799
800 2003-12-01  Dick Porter  <dick@ximian.com>
801
802         * wapi-private.h: 
803         * mutexes.c (CreateMutex): 
804         * mutex-private.h (struct _WapiHandle_mutex): 
805         * handles.c: Look up certain handle types by name, in a shared
806         namespace.  Currently only mutex handles have this implemented.
807         Fixes bug 51089.
808
809         * semaphores.c (CreateSemaphore): 
810         * events.c (CreateEvent): Fix signature
811
812 2003-11-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
813
814         * io.c: don't call g_free before testing errno as it may modify it.
815         If the path exists, return an error if it's not a directory. Fixes
816         bug #50753.
817
818 2003-11-20  Dick Porter  <dick@ximian.com>
819
820         * io.c: Missed a little-endian UTF16 conversion.  Patch from
821         Jeroen Zwartepoorte (Jeroen@xs4all.nl), fixes bug 51065.
822
823 2003-10-29  Dick Porter  <dick@ximian.com>
824
825         * io.c (MoveFile): If the move crosses filesystems, try and fall
826         back to copy and delete.  Patch from Jörg Rosenkranz
827         (JoergR@voelcker.com), fixes bug 50298.
828
829 2003-10-28  Dick Porter  <dick@ximian.com>
830
831         * io.c: Use the new encoding conversion to cope with non-utf8
832         locales in filenames.
833
834         * processes.c: Ditto for process arguments.
835
836 Tue Oct 21 12:01:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
837
838         * atomic.h: some ppc inline asm fixes (incorrect use of labels, 
839         incorrect register constraints, incorrect clobber lists).
840
841 2003-10-13  Bernie Solomon  <bernard@ugsolutions.com>
842
843         * Makefile.am hppa_atomic.s: add HP 64bit
844         implementation of atomic ops
845
846 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
847
848         * threads.c (CreateThread): Wrap pthread_attr_setstacksize call in
849         a conditional for platforms that don't have it.
850
851 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
852
853         * threads.c: (CreateThread) use stacksize argument
854         if non-zero - change default for 64 bits to 4Mb
855
856 2003-09-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
857
858         * sockets.c: set last error when socket creation fails. This shed some
859         light on bug #49015.
860
861 2003-09-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
862
863         * processes.c: fixed bug #48973: we only change \ by / for the argument
864         to be used as command.
865         When getting the program name from the args, don't let the space between
866         them in the args.
867
868 2003-09-24  Bernie Solomon <bernard@ugsolutions.com>
869
870         * atomic.h atomic.c: fix sparc so lock is
871         global, increment does so and it compiles under Sun compiler.
872
873 2003-09-22  Bernie Solomon <bernard@ugsolutions.com>
874
875         * handles.c: include <string.h> directly as may
876         not be nested in <sys/un.h> like Linux
877
878 2003-09-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
879
880         * io.c:
881         (DeleteFile): call SetLastError on failure. Fix by
882         richard.torkar@htu.se (Richard Torkar). Closes bug #48222.
883
884 2003-09-15  Lluis Sanchez Gual  <lluis@ximian.com>
885
886         * daemon.c: In compare_process(), discard handles already signalled.
887
888 2003-09-02  Dick Porter  <dick@ximian.com>
889
890         * io.c: Work around glib brain-dead assumptions about utf8-encoded
891         filenames.  Fixes bug 30781.
892
893 2003-08-28  Dick Porter  <dick@ximian.com>
894
895         * critical-sections.c:  Patch from Bernie Solomon
896         <bernard@ugsolutions.com> to emit a warning if locking a critical
897         section fails.
898
899 2003-07-23  Dick Porter  <dick@ximian.com>
900
901         * shared.c:
902         * daemon.c (maybe_exit): Avoid the race condition when the daemon is
903         closing but another client comes along when the shared data is still
904         visible.  Should fix bugs 33671 and 35213.
905
906 2003-07-23  Dick Porter  <dick@ximian.com>
907
908         * handles.c:  Initialise handle mutex and cond.  Fix by
909         Bernie Solomon <bernard@ugsolutions.com>
910
911 2003-07-15  Dick Porter  <dick@ximian.com>
912
913         * timed-thread.c (timed_thread_start_routine): Fix virtual memory
914         leak when threads quit.  Fixes bug 44067.
915
916 Wed Jun 18 19:08:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
917
918         * io.c: never add write permission for group or others in
919         SetFileAttributes ().
920
921 2003-06-17  Dick Porter  <dick@ximian.com>
922
923         * io.c (SetFileAttributes): Implement the ReadOnly attribute, and
924         ignore the unsupported ones ("fixes" bug 44977).
925
926 2003-06-17  Lluis Sanchez Gual  <lluis@ximian.com>
927
928         * misc.c: fix bug in _wapi_calc_timeout. It gave wrong values for
929           high ms values (there was an overflow).
930
931 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
932
933         * system.h (struct _WapiSystemInfo ): Fix warnings when using gcc-3.3.
934
935 2003-06-11  Dick Porter  <dick@ximian.com>
936
937         * shared.c: Fix shared directory creation.  Patch from
938         Pablo Baena <pbaena@uol.com.ar>
939
940 2003-06-10  Dick Porter  <dick@ximian.com>
941
942         * atomic.c: Delete the useless compile warning
943
944 2003-06-09  Dick Porter  <dick@ximian.com>
945
946         * daemon.c: Lookup env as a string array.  Fixes bug 44289.  Also
947         make setting the process handle value in the environment actually
948         work.
949
950         * processes.c: Pretty up the process name, if it happens to be
951         "mono" such as when another mono process forks "mono foo.exe"
952
953 2003-06-05  Dick Porter  <dick@ximian.com>
954
955         * processes.c (process_set_current): Don't do an expensive handle
956         search at application startup, check the environment to see if the
957         process handle has already been created.
958
959         * io.c: Don't do an expensive handle search when creating stdin,
960         stdout and stderr handles, just create them all the first time one
961         is requested.
962
963         * wapi-private.h:
964         * shared.c:
965         * shared.h:
966         * handles.c:
967         * handles-private.h:
968         * daemon-messages.h:
969         * daemon-private.h:
970         * daemon.c: Support for "unlimited" number of handles and scratch
971         data.
972
973         Speed up application startup by passing process handle in the
974         environment, rather than let the app scan all handles (which gets
975         really slow when there are more than a few thousand to check.)
976
977         Initialise some structs passed to syscalls, noticed by valgrind.
978         
979
980 2003-05-20  Dick Porter  <dick@ximian.com>
981
982         * io.c (FindFirstFile): Include . files in the glob.  Fixes bug
983         43229.
984
985 2003-05-19  Dick Porter  <dick@ximian.com>
986
987         * threads.c: Set the new thread's stack size to 2M.  Fix needed
988         for BSD, reported by Martin Dvorak <md@9ll.cz>
989
990 2003-05-16  Dick Porter  <dick@ximian.com>
991
992         * io.h:
993         * io.c: Implement GetTempPath()
994
995 2003-05-16  Dick Porter  <dick@ximian.com>
996
997         * processes.c (CreateProcess): Set some error codes
998
999 2003-05-12  Dick Porter  <dick@ximian.com>
1000
1001         * misc.c (_wapi_calc_timeout): Cope with overflowing tv_nsec.
1002         Patch from Martin Dvorak <mdvorak@ninell.cz>.
1003
1004 2003-05-10  Dick Porter  <dick@ximian.com>
1005
1006         * io.c (CopyFile): Copy file mode as well as file data.  Based on
1007         suggestion by Giuseppe Greco <giuseppe.greco@agamura.com>, bug
1008         42706.
1009
1010 2003-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1011
1012         * handles.c: don't call GC_gcollect when creating new handles.
1013
1014 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1015
1016         * handles.c: added some debugging code. Call GC_gcollect
1017         before creating a new handle. It makes Lupus' test run smoother and
1018         faster (from 62 to 83 request per second). Notice that calling
1019         GC_finalizer_notifier if needed (GC_should_invoke_finalizer ()) does
1020         not improve nor degrade the performance, so i don't do it.
1021
1022 2003-05-02  Dick Porter  <dick@ximian.com>
1023
1024         * sockets.c: Rearrange closesocket() and socket_close_private(),
1025         and remember to unref the handle, so we don't leak socket handles.
1026         Fix from Pelle Johnsen <pelle.johnsen@mail.dk>
1027
1028 2003-04-11  Dick Porter  <dick@ximian.com>
1029
1030         * atomic.h: ARM atomic operations by Malte Hildingson
1031         <tds00mahi@tellus.thn.htu.se>
1032
1033 Tue Apr 8 11:37:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
1034
1035         * atomic.h: fix macosx build by "Urs C. Muff" <umuff@quark.com>.
1036
1037 2003-04-03  Martin Baulig  <martin@ximian.com>
1038
1039         The following change is conditional to `WITH_INCLUDED_LIBGC'
1040         which is not yet enabled by default.
1041
1042         * threads.c (SuspendThread, ResumeThread): Fully implemented this.
1043         (gc_init): New static function; install a signal handler for
1044         SIGPWR which is used to suspend threads.  [FIXME: it SIGPWR
1045         doesn't exist on all Unix systems, we need to find another
1046         signal].
1047         (mono_wapi_push_thread_stack): New public function.  Tells the
1048         garbage collector about the current stack pointer of a suspended
1049         thread.
1050
1051 2003-04-03  Martin Baulig  <martin@ximian.com>
1052
1053         * timed-thread.h (TimedThread): Added `suspended_sem',
1054         `suspend_count' and `stack_ptr'.
1055
1056 2003-03-28  Dick Porter  <dick@ximian.com>
1057
1058         * atomic.h: PPC support gratiously donated to the public domain
1059         by John Duncan <jddst19@mac.com>
1060
1061 2003-03-20  Dick Porter  <dick@ximian.com>
1062
1063         * sockets.c (_wapi_connect): If connect() fails with EACCES, try
1064         setting SO_BROADCAST and connecting again.  Fixes bug 39178.
1065
1066 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1067
1068         * processes.c: included Jerome Laban's patch and call SetLastError when
1069         the executable is not found.
1070
1071 2003-03-03  Dick Porter  <dick@ximian.com>
1072
1073         * io.c (CreateFile): Try opening directories readonly, so that
1074         timestamps can be adjusted.  Patch by Elan Feingold
1075         <efeingold@mn.rr.com>.
1076
1077 2003-02-25  Dick Porter  <dick@ximian.com>
1078
1079         * shared.c (_wapi_shm_attach): Return a failure code on system
1080         call errors, rather than exiting.
1081
1082 2003-02-21  Dick Porter  <dick@ximian.com>
1083
1084         * processes.c (GetCurrentProcessId): Use the current process
1085         handle to return the process ID, as getpid() is unreliable
1086         (linuxthreads gives each thread a different pid).  Fixes bug
1087         37550.
1088
1089 2003-02-21  Dick Porter  <dick@ximian.com>
1090
1091         * io.c (FindNextFile): Skip over dangling symlinks.  Fixes bug
1092         34076.
1093
1094 2003-02-11  Dick Porter  <dick@ximian.com>
1095
1096         * timefuncs.h: 
1097         * timefuncs.c: Added GetTickCount()
1098
1099 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1100
1101         * error.c: added WSA_EHOSTUNREACH mapping.
1102
1103 2003-01-26  Miguel de Icaza  <miguel@ximian.com>
1104
1105         * io.c (SetFileAttributes): This routine is not currently
1106         implemented for the general case, but I added a special case to
1107         set the executable bit on Linux.
1108
1109 Wed Jan 15 15:55:40 CET 2003 Paolo Molaro <lupus@ximian.com>
1110
1111         * sockets.h, daemon.c, io.c: compilation fixes on MacOSX.
1112
1113 2003-01-08  Dick Porter  <dick@ximian.com>
1114
1115         * sockets.c: Fixed setting blocking mode to true (fixes bug 36388)
1116
1117 2002-12-11  Juli Mallett  <jmallett@FreeBSD.org>
1118
1119         * daemon.c, handles-private.h, handles.c, wapi-private.h:
1120         Check for an implementation which says it supports
1121         _POSIX_THREAD_PROCESS_SHARED, rather than just one that
1122         defines the symbol.  Defined but with a value of -1 still
1123         means that it is unsupported.
1124
1125 2002-12-08  Martin Baulig  <martin@ximian.com>
1126
1127         * handles.c (_wapi_handle_new): Create new non-shared handles with
1128         an initial refcount of 1, not 0.
1129
1130 2002-11-22  Dietmar Maurer  <dietmar@ximian.com>
1131
1132         * threads.c (TlsGetValue): removed unnecessary mutex
1133
1134 2002-11-20  Dick Porter  <dick@ximian.com>
1135
1136         * timed-thread.c (_wapi_timed_thread_attach): Attached threads
1137         need to store their data structure too.
1138
1139         * threads.c: Make sure the threading data is initialised wherever
1140         it is needed
1141
1142 2002-11-15  Dick Porter  <dick@ximian.com>
1143
1144         * timed-thread.c: Removed unneeded parameters in
1145         _wapi_timed_thread_attach().
1146
1147         * threads.c: Renamed AttachThread() to make it not look like
1148         external API.  Removed unneeded parameters.
1149
1150 2002-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1151
1152         * error.[ch]: added errno_to_WSA (). It displays a warning and return
1153         WSASYSCALLFAILURE if there is no error mapping for the given errno,
1154
1155         * sockets.c: use errno_to_WSA and fixed display of warning for h_errno.
1156
1157 2002-10-31  Dick Porter  <dick@ximian.com>
1158
1159         * io.h: 
1160         * io.c: Define and use INVALID_FILE_ATTRIBUTES
1161
1162 2002-10-07  Dick Porter  <dick@ximian.com>
1163
1164         * timefuncs.c:
1165         * daemon.c: Use a more accurate time source for process start and
1166         end times.
1167
1168 2002-10-03  Dick Porter  <dick@ximian.com>
1169
1170         * daemon.c:
1171         * handles.c:
1172         * threads.c:  Fixes for freebsd.  Make sure that mutex and condition
1173         creation and deletion happen in the process that owns them, when
1174         POSIX shared thread objects aren't supported.  This breaks on
1175         freebsd, as pthread_t is a pointer to data.
1176
1177 2002-10-02  Dick Porter  <dick@ximian.com>
1178
1179         * shared.c: Use mmap() instead of sysv shm for the shared data.
1180
1181         * wapi-private.h (_WAPI_HANDLE_VERSION): Reset back to 0, for the
1182         new system
1183
1184         * daemon-private.h: 
1185         * daemon.c: mmap()ed regions survive fork, so just pass the
1186         pointer to _wapi_daemon_main instead of mapping it again.
1187
1188 2002-10-01  Dick Porter  <dick@ximian.com>
1189
1190         * timed-thread.c: Kludge for CREATE_SUSPENDED thread creation.
1191         Unfortunately libgc uses the same thread suspend technique that I
1192         want to, and the two don't mix: libgc will deadlock when it tries
1193         to stop the world if a thread has already been suspended by
1194         someone else.  Just do the simple suspended create rather than the
1195         general purpose thread suspension for now.
1196
1197         * threads.c: Pass create flags to the timed_thread create call, to
1198         implement suspended thread creation.  ResumeThread() partially
1199         implemented, to cope with the case where a newly created but
1200         suspended thread is launched.
1201
1202 2002-09-30  Dick Porter  <dick@ximian.com>
1203
1204         * sockets.c (ioctlsocket): Set non-blocking mode in a better way,
1205         with fcntl.
1206
1207 2002-09-27  Dick Porter  <dick@ximian.com>
1208
1209         * semaphores.c: Only include semaphore.h if it's present. Patch
1210         for BSD from jmmv@hispabsd.org (Julio Merino).
1211
1212 2002-09-27  Dick Porter  <dick@ximian.com>
1213
1214         * processes.c: Pass environment and working directory to the
1215         daemon when forking.  Don't let argv[0] be duplicated when looking
1216         for the program name.  Implement EnumProcessModules (simple
1217         version for now, lsof-style later if needed), GetModuleBaseName,
1218         {Get,Set}ProcessWorkingSetSize (just faked, because the vm hints
1219         aren't available on Linux).
1220
1221         * process-private.h: Store the process name, and the working set
1222         min and max
1223
1224         * handles.c:
1225         * handles-private.h: New functions to store and retrieve an array
1226         of strings in the scratch space
1227
1228         * daemon.c: Don't miss deleting some handles when a client exits
1229         (we used to rely on the client doing the final cleanup, but
1230         obviously if the client is no longer there the daemon has to do
1231         it).
1232
1233         Process forking now sets the environment and the working
1234         directory.
1235
1236         * io.c: Don't confuse fd 0 with an unassigned handle struct
1237
1238         * atomic.h: Add a google cache alternative to the msdn URL
1239
1240 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1241
1242         * sockets.c:
1243         (_wapi_recvfrom): added ECONNRESET to the switch.
1244
1245 2002-09-24  Mark Crichton  <crichton@gimp.org>
1246
1247         * atomic.h: Yea.  On linux, sparc isn't sparc, it's __sparc__.
1248         Added to ifdef.
1249
1250 2002-09-19  Mark Crichton  <crichton@gimp.org>
1251
1252         * daemon.c, shared.c: Added NEED_LINK_UNLINK for systems that
1253         dont have Linux's abstract filesystem for sockets.
1254
1255 2002-09-19  Mark Crichton  <crichton@gimp.org>
1256
1257         * atomic.h: Added SPARC atomic asm code.
1258         * daemon.c, handles-private.h, handles.c, wapi-private.h:
1259         undefined _POSIX_THREAD_PROCESS_SHARED.  This actually exists on
1260         Solaris 9, however, the code paths don't seem to work.  More testing
1261         on the shared case is *really* needed.
1262
1263 2002-09-03  Dick Porter  <dick@ximian.com>
1264
1265         * threads.h: 
1266         * threads.c: Removed PosixKillThread(), because it's not in the
1267         w32 api
1268
1269 2002-08-20  Dick Porter  <dick@ximian.com>
1270
1271         * handles.c (_wapi_handle_scratch_store): Made stored byte lengths
1272         multiples of 4 bytes, to keep header structures aligned.  Needed
1273         for sparc, at least. (Patch from crichton@gimp.org)
1274
1275         * handles.c: Removed 'disable_shm' variable (we've defaulted to
1276         building with shm enabled for months now)
1277
1278 2002-08-19  Dick Porter  <dick@ximian.com>
1279
1280         * daemon.c: Rewrote the poll() loop to use GIOChannels instead,
1281         for legacy NeXT-based systems.
1282
1283 2002-08-12  Dick Porter  <dick@ximian.com>
1284
1285         * atomic.h: Rename some parameters to avoid c++ keywords (Patch
1286         from Joseph Wenninger <kde@jowenn.at>)
1287
1288 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
1289
1290         * threads.c: use fast spinlocks by default
1291
1292 2002-08-02  Dick Porter  <dick@ximian.com>
1293
1294         * io.c (GetStdHandle): Add a handle reference when returning a
1295         duplicate console handle.  This fixes the unref_handle errors in
1296         NUnit.
1297
1298 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
1299
1300         * threads.c (TLS_PTHREAD_MUTEX): define this because else some
1301         tests does not work
1302
1303 2002-08-01  Dick Porter  <dick@ximian.com>
1304
1305         * threads.c: Use atomic spinlocks in TLS functions
1306
1307         * mono-spinlock.h:
1308         * Makefile.am: Added mono-spinlock.h
1309
1310 2002-07-21  Jeffrey Stedfast  <fejj@ximian.com>
1311
1312         * daemon-messages.c: #include <sys/types.h> and <sys/sockets.h> -
1313         these are needed for sendmsg() and also for struct msghdr (at
1314         least on Solaris). Solaris still won't build because struct msghdr
1315         doesn't have msg_flags, msg_control, or msg_controllen members.
1316         (CMSG_SPACE): Define for systems that don't have it.
1317         (CMSG_LEN): Same.
1318
1319 2002-07-20  Dick Porter  <dick@ximian.com>
1320
1321         * wapi-private.h:
1322         * io-private.h:
1323         * io.h:
1324         * io.c:
1325         * handles.c: Implemented pipe handles
1326         
1327         * handles.c:
1328         * daemon.c: Fixed bug in handle closing.
1329
1330         * shared.c:
1331         * daemon.c: Forked processes now close all open file descriptors.
1332
1333 Fri Jul 19 19:05:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
1334
1335         * sockets.h, io-layer.h, critical-sections.h: don't include config.h
1336         in header files.
1337
1338 2002-07-19  Martin Baulig  <martin@gnome.org>
1339
1340         * threads.c (ExitThread): Call exit() if no threads has been
1341         created yet.
1342
1343 2002-07-17  Dick Porter  <dick@ximian.com>
1344
1345         * daemon-messages.c: Freebsd fixes from Andreas Kohn
1346         <andreas.kohn@gmx.net>
1347
1348 2002-07-15  Dick Porter  <dick@ximian.com>
1349
1350         * io.c: Removed bogus console_flush() method, that was just cut
1351         and pasted from file_flush when I separated the two handle types.
1352
1353 2002-07-12  Dick Porter  <dick@ximian.com>
1354
1355         * io.c (convert_from_flags): Fixed misunderstanding wrt fcntl
1356         flags.  Fixes bug 27633.
1357
1358 2002-07-12  Dick Porter  <dick@ximian.com>
1359
1360         * wapi-private.h:
1361         * handles.c:
1362         * daemon.c: Use size of sockaddr_un.sun_path from config.h
1363
1364 2002-07-12  Dick Porter  <dick@ximian.com>
1365
1366         * processes.c (CreateProcess): Send stdin, stdout and stderr
1367         handles if the startup info doesnt specify new ones
1368
1369         * io.c (GetStdHandle): Return the same handle when the same
1370         standard handle is requested
1371
1372         * handles.c: Pass file descriptors when forking
1373
1374         * daemon.c: Use supplied file descriptors when forking a new
1375         process
1376
1377         * daemon-messages.h: 
1378         * daemon-messages.c: Pass stdin, stdout and stderr file
1379         descriptors to the daemon (used when forking)
1380
1381 2002-07-11  Miguel de Icaza  <miguel@ximian.com>
1382
1383         * daemon.c (_wapi_daemon_main): Use sizeof
1384         (main_socket_address.sun_path) instead of hardcoded 108 value.
1385
1386         * handles.c (shared_init): Use sizeof
1387         (shared_socket_address.sun_path) instead of hardcoded 108 value.
1388
1389 2002-07-10  Dennis Haney  <davh@davh.dk>
1390
1391         * shared.c:
1392         * handles.c:
1393         * daemon.c: Lots of documentation, some added error checking, and
1394         code readability improvements.
1395
1396         * daemon-messages.h: Add the Error request type to improve error
1397         checking.
1398
1399         * daemon-messages.c: Do a bit more error checking on send() and
1400         recv(), and log errors with a higher severity level.
1401
1402 2002-07-04  Dick Porter  <dick@ximian.com>
1403
1404         * daemon.c (process_process_fork): Fix argument handling, due to
1405         buggy understanding of g_strsplit() behaviour.
1406
1407 2002-07-03  Dick Porter  <dick@ximian.com>
1408
1409         * threads.h:
1410         * threads.c: Implement OpenThread().  Define access-control values
1411         for thread handles.
1412
1413         * wapi.h:
1414         * processes.h:
1415         * access.h:
1416         * Makefile.am: Added access.h, to hold shared access-control
1417         definitions
1418
1419 2002-07-02  Dick Porter  <dick@ximian.com>
1420
1421         * wapi-private.h (_WAPI_HANDLE_VERSION): New protocol version
1422         
1423 2002-07-02  Dick Porter  <dick@ximian.com>
1424
1425         * handles.c (shared_init): Make a second attempt to contact the
1426         daemon if the shared memory attach succeeds, but the connect()
1427         fails. (This copes with the daemon crashing without cleaning up
1428         the shared memory.)
1429
1430         * Makefile.am: 
1431         * daemon-private.h:
1432         * daemon.c:
1433         * shared.c (_wapi_shm_attach): Don't exec() anything when we fork
1434         the daemon, it's now built into the library.
1435
1436 2002-06-25  Dick Porter  <dick@ximian.com>
1437
1438         * handles.c:
1439         * handles-private.h:
1440         * daemon-messages.h:
1441         * daemon.c: Process forking and handle data management
1442
1443         * processes.h:
1444         * process-private.h:
1445         * processes.c: Process forking and other support functions
1446
1447 2002-06-25  Dick Porter  <dick@ximian.com>
1448
1449         * versioninfo.h: PE resource decoding
1450
1451         * unicode.c (_wapi_unicode_to_utf8): g_utf16_to_utf8 doesnt need
1452         to be told the string length
1453
1454         * io.c: Removed the ACTUALLY_DO_UNICODE option.  Fixed some leaks.
1455         Moved _wapi_time_t_to_filetime and the WapiFileTime typedef to
1456         timefuncs.c
1457
1458 2002-06-12  Dick Porter  <dick@ximian.com>
1459
1460         * daemon.c: 
1461         * daemon-messages.c: Handle SIGPIPE in a non-stupid way in the
1462         daemon, if MSG_NOSIGNAL isn't available.  Thanks to Jaroslaw
1463         Kowalski <jarek@atm.com.pl> for pointing out the bogosity.
1464
1465 2002-06-10  Jaroslaw Kowalski <jarek@atm.com.pl>
1466
1467         * sockets.c, daemon-messages.c: Prevent SIGPIPE from being raised
1468         when writing to a closed socket.
1469
1470 2002-06-08  Jeffrey Stedfast  <fejj@ximian.com>
1471
1472         * mono-mutex.c (mono_once): New convenience function for my
1473         previous fix.
1474
1475         * handles.c:
1476         * error.c: 
1477         * critical-sections.c: 
1478         * threads.c: 
1479         * sockets.c: 
1480         * semaphores.c: 
1481         * processes.c: 
1482         * mutexes.c: 
1483         * io.c: 
1484         * events.c: 
1485         * atomic.c: Use mono_once() rather than pthread_once().
1486
1487 2002-06-06  Jeffrey Stedfast  <fejj@ximian.com>
1488
1489         * handles.c (_wapi_handle_new): pthread_once() is not atomic, so
1490         if multiple threads all try to call _wapi_handle_new() before the
1491         shared data has been initialized, it is possible that we could get
1492         into a condition where shared_init() is being executed and later
1493         threads will pass by pthread_once() due to the fact that it has
1494         already been called and so therefor will attempt to use the shared
1495         data before it has been completely initialized. If we instead use
1496         a standard mutex locking mechanism around shared_init(), we can
1497         avoid the situation entirely. By wrapping the mutex locking in a
1498         check to see if we've already initialized the data, we can even
1499         avoid wasting resources by having to lock/unlock the mutex in any
1500         later calls (the only time we'd have to worry about
1501         locking/unlocking is the initial race to call shared_init() at
1502         startup).
1503
1504 Sat Jun 1 13:27:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
1505
1506         * atomic.h: inline asm fixes from Dennis Haney (davh@davh.dk).
1507
1508 Fri May 31 16:21:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
1509
1510         * daemon.c, handles.c: rename "sun" local var since it's apparently
1511         a #define on Solaris.
1512
1513 Fri May 31 15:40:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
1514
1515         * daemon-messages.c: work-around MSG_NOSIGNAL missing on some
1516         platforms.
1517
1518 2002-05-15  Dick Porter  <dick@ximian.com>
1519
1520         * wait.c: Fix a deadlock in WaitForMultipleObjects
1521
1522 2002-05-14  Dick Porter  <dick@ximian.com>
1523
1524         * io.c: Fix a cut&paste error, found by
1525         Jaroslaw Kowalski <jarek@atm.com.pl>
1526
1527 2002-05-10  Dan Lewis  <dihlewis@yahoo.co.uk>
1528
1529         * io.c: Nasty typo.
1530
1531 2002-05-09  Dick Porter  <dick@ximian.com>
1532
1533         * threads.c: 
1534         * semaphores.c: 
1535         * processes.c: 
1536         * mutexes.c: 
1537         * handles-private.h: 
1538         * events.c: 
1539         * Makefile.am: Remove now-unused file wait-private.h
1540
1541 2002-05-08  Dick Porter  <dick@ximian.com>
1542
1543         * shared.c: Better error messages, and report when daemon
1544         connection fails rather than blocking forever.  Do some more
1545         shared memory sanity checking.
1546
1547         * handles.c: Better error messages when connecting to shared
1548         memory and the handle daemon.  Fall back to non-shared handles if
1549         an error occurs.  Set the default back to 'shared handles'.  Fix a
1550         crashing bug in scratch space allocation that mangled the block
1551         headers.
1552
1553 2002-05-07  Miguel de Icaza  <miguel@ximian.com>
1554
1555         * handles.c (shared_init): Disable SHM for now, people have too
1556         many problems with this, and the diagnostics are not helping.
1557
1558 2002-05-06  Dan Lewis  <dihlewis@yahoo.co.uk>
1559
1560         * io.c: CreateFile sets win32 last error.
1561
1562 2002-05-05  Dick Porter  <dick@ximian.com>
1563
1564         * wapi-private.h: 
1565         * handles-private.h:
1566         * io.c: 
1567         * io-private.h:
1568         * mutexes.c: 
1569         * mutex-private.h: 
1570         * processes.c: 
1571         * process-private.h: 
1572         * semaphores.c: 
1573         * semaphore-private.h: 
1574         * sockets.c: 
1575         * socket-private.h: 
1576         * events.c: 
1577         * event-private.h: Simplify the WapiHandleOps struct: take out all
1578         the file-specific entries, leaving just the items that operate on
1579         handles themselves.  Split the close operation into shared and
1580         private parts: shared close is called by the daemon.
1581
1582         * handles.c: As above, but also pass handle allocation, ref and
1583         unref operations to the daemon.  Populate the handle_ops array at
1584         compile time, because the daemon needs to call ops on handles too.
1585         Don't bother to track open handle counts any more, the daemon does
1586         that.
1587         
1588         * threads.c: 
1589         * thread-private.h: As above, but also make the thread data
1590         handle-private.
1591
1592         * shared.c: Fork a handle daemon if the calling process created
1593         the shared memory segment.
1594
1595         * daemon.c:
1596         * daemon-messages.c:
1597         * daemon-messages.h:
1598         * Makefile.am: Build a daemon to manage handle allocation and
1599         destruction without needing to lock the shared memory
1600
1601 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
1602
1603         * atomic.c: Changed to use a normal mutex rather than a spinlock
1604         since a lot of platforms seem to not have them :\
1605
1606 2002-04-30  Dick Porter  <dick@ximian.com>
1607
1608         * Completely rewrote the handle waiting code: removed the helper
1609         thread and its attendant complexity.  All handle waiting is now
1610         abstracted into the WaitForSingleObject() and
1611         WaitForMultipleObjects() functions.
1612
1613         * Implemented inter-process sharing of handles using sysv shared
1614         memory.  This makes handles even more opaque, with a handle now
1615         just an index into an array.
1616         
1617 2002-04-25  Dan Lewis  <dihlewis@yahoo.co.uk>
1618
1619         * io.c: unitialized pointer in GetCurrentDirectory.
1620
1621 Sat Apr 20 13:37:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
1622
1623         * threads.c: destroy the mutex at thread destruction
1624         (if/when thread destruction code will be actually called).
1625         When protecting a tls data pointer from the gc, use also the 
1626         thread id in the key.
1627         
1628 Wed Apr 17 18:36:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
1629
1630         * timed-thread.c: avoid race condition when setting the thread to
1631         detached.
1632
1633 2002-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1634
1635         * jit.h: to more #include lines to avoid breaking compilation
1636         under windows when upgrading mingw and w32api to version
1637         1.3 (thanks Dick!).
1638
1639 2002-04-16  Dick Porter  <dick@ximian.com>
1640
1641         * atomic.h: Explanatory comment about lack of 80386 support
1642
1643 2002-04-15  Dick Porter  <dick@ximian.com>
1644
1645         * atomic.h: use xaddl for InterlockedIncrement() and
1646         InterlockedDecrement().  Use cmpxchgl in a loop for
1647         InterlockedExchange() and InterlockedExchangePointer().
1648
1649 Mon Apr 15 13:31:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
1650
1651         * unicode.c: fix unicode_len() to not access uninitialized memory
1652         (and updated to conform to mono code style).
1653
1654 Fri Mar 29 17:15:11 CET 2002 Paolo Molaro <lupus@ximian.com>
1655
1656         * io.c: EEXISTS is ignored for directory creation.
1657         * mono-mutex.h: remove silly "pragma }" that emacs users insert
1658         because they use a broken editor:-)
1659
1660 2002-03-28  Dick Porter  <dick@ximian.com>
1661
1662         * sockets.h: 
1663         * sockets.c: 
1664         * io.c: 
1665         * handles.h: 
1666         * handles.c: Warning cleanups
1667
1668 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
1669
1670         * unicode.h, unicode.c: changed to gunichar2
1671         * io.h, io.c: changed strings to gunichar2*, added
1672         SetFileAttributes(), GetCurrentDirectory(), SetCurrentDirectory(),
1673         some fixes to FindFirstFile() and friends.
1674
1675 2002-03-26  Dick Porter  <dick@ximian.com>
1676
1677         * types.h: Implement the large integer struct
1678
1679         * timefuncs.h:
1680         * timefuncs.c: Dummy functions that don't yet implement
1681         QueryPerformanceCounter() and QueryPerformanceFrequency()
1682
1683         * threads.h:
1684         * threads.c: Implement SleepEx()
1685
1686         * system.h:
1687         * system.c: Beginnings of GetSystemInfo()
1688
1689         * mono-mutex.c (pthread_mutex_timedlock): Fix a ms/ns conversion
1690         thinko
1691
1692         * context.h:
1693         * context.c: Dummy function that doesnt yet implement
1694         GetThreadContext()
1695
1696         * atomic.h: 
1697         * atomic.c: Interlocked functions
1698
1699 Mon Mar 25 13:01:40 CET 2002 Paolo Molaro <lupus@ximian.com>
1700
1701         * threads.c: use a gc-safe hash table to store tls pointers.
1702
1703 2002-03-22  Dick Porter  <dick@ximian.com>
1704
1705         * threads.c: Fix a race condition where a thread can start and
1706         exit before the handle has been properly initialised (no reason
1707         why the handle couldn't be initialised beforehand, so do so)
1708
1709         Fix a ms to ns conversion magnitude thinko.
1710
1711 2002-03-21  Dick Porter  <dick@ximian.com>
1712
1713         * semaphores.c: Fix a problem when waiting for one or more
1714         semaphores, and another semaphore is Released (all waiting
1715         semaphores assumed they were signalled)
1716
1717 2002-03-29  Dan Lewis <dihlewis@yahoo.co.uk>
1718
1719         * io.h, io.c, uglify.h: added MoveFile, CopyFile, CreateDirectory,
1720         RemoveDirectory, GetFileAttributes, GetFileAttributesEx
1721
1722 2002-03-19  Dietmar Maurer  <dietmar@ximian.com>
1723
1724         * threads.c (Sleep): bug fix: 1ms == 1000000ns
1725
1726 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
1727
1728         * io.h, io.c, events.c, mutexes.c, semaphores.c, sockets.c,
1729         threads.c, io.c: added flush method to handles.
1730
1731         * io.c: FlushFileBuffers() and FindFirstFile() functions.
1732
1733 Thu Mar 7 17:21:52 CET 2002 Paolo Molaro <lupus@ximian.com>
1734
1735         * threads.c, timed-thread.c, wait.c: Boehm-GC anable.
1736
1737 2002-02-20  Dick Porter  <dick@ximian.com>
1738
1739         * io-layer.h: Always build without cygwin support on windows
1740
1741 Mon Feb 18 15:50:59 CET 2002 Paolo Molaro <lupus@ximian.com>
1742
1743         * sockets.c: #undef DEBUG.
1744
1745 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
1746
1747         * io-layer.h: conditionally include sys/filio.h and sys/sockio.h
1748         for FIONBIO, FIONREAD, and SIOCATMARK.
1749
1750 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
1751
1752         * sockets.c: conditionally include sys/filio.h and sys/sockio.h
1753         for FIONBIO, FIONREAD, and SIOCATMARK.
1754
1755 2002-02-13  Dick Porter  <dick@ximian.com>
1756
1757         * sockets.c: Implement shutdown and select
1758
1759 2002-02-13  Jeffrey Stedfast  <fejj@ximian.com>
1760
1761         * mono-mutex.[c,h]: New source files that thinly wrap all pthread
1762         functions that take pthread_mutex_t and/or pthread_mutexattr_t
1763         arguments for the sake of portability. Implements recursive
1764         mutexes and pthread_mutex_timedlock.
1765
1766         * critical-sections.c:
1767         * events.c:
1768         * handles.c:
1769         * mutexes.c:
1770         * semaphores.c:
1771         * threads.c:
1772         * timed-thread.c:
1773         * wait.c: Use the mono-mutex wrapper portability functions/macros.
1774
1775         * pthread-compat.[c,h]: Replaced by mono-mutex.[c,h]
1776
1777 2002-01-23  Dick Porter  <dick@ximian.com>
1778
1779         * sockets.c: Networking support, mostly wrapping BSD socket APIs
1780         with handle code, and translating errno into w32 error codes.
1781
1782         * macros.h: Some w32 macros used with the socket support
1783
1784         * error.c: Implemented GetLastError() and SetLastError()
1785
1786         * Makefile.am: Added sockets, with kludge to override some symbols
1787
1788 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
1789
1790         * unicode.c (_wapi_unicode_to_utf8): byteswap UTF16 strings before
1791         passing them to iconv
1792         (_wapi_unicode_to_utf8): only swap bytes on LE systems, remove bug
1793         from previous commit.
1794
1795 2001-12-11  Dick Porter  <dick@ximian.com>
1796
1797         * io.c: Implement DeleteFile(), GetFileTime(), SetFileTime() and
1798         FileTimeToSystemTime().
1799
1800         * unicode.c (unicode_len): Nasty way of finding length of unicode
1801         string with embedded NULLs (counts until two NULLs together).
1802
1803         * mutexes.c (mutex_close): 
1804         * events.c (event_close): Release the internal pthreads resources
1805
1806 2001-11-26  Dick Porter  <dick@ximian.com>
1807
1808         * critical-sections.c:
1809         * events.c:
1810         * handles.c:
1811         * io.c:
1812         * mutexes.c:
1813         * semaphores.c:
1814         * threads.c:
1815         * timed-thread.c:
1816         * wait.c: turn off DEBUG messages
1817
1818 2001-11-22  Dick Porter  <dick@ximian.com>
1819
1820         * handles.c (SignalObjectAndWait): Implement
1821
1822         * wait.c (WaitForSingleObject): Fix case where timeout == 0
1823
1824         * threads.c:
1825         * semaphores.c:
1826         * mutexes.c:
1827         * io.c:
1828         * events.c: Support for SignalObjectAndWait
1829         
1830 2001-11-21  Dick Porter  <dick@ximian.com>
1831
1832         * events.c:
1833         * handles.c:
1834         * mutexes.c:
1835         * semaphores.c:
1836         * threads.c:
1837         * wait.c: Reliable method of returning which handle was signalled
1838         on return from WaitForMultipleObjects().
1839
1840 2001-11-21  Dick Porter  <dick@ximian.com>
1841
1842         * events.c: Implement events
1843
1844 2001-11-15  Dick Porter  <dick@ximian.com>
1845
1846         * mutexes.c: Implement mutexes
1847
1848         * threads.c: 
1849         * semaphores.c: 
1850         * misc.c: Factor out some common code
1851
1852 2001-11-13  Dick Porter  <dick@ximian.com>
1853
1854         * threads.c: Implement TLS.  Implement GetCurrentThreadId(), and
1855         GetCurrentThread() by maintaining a hash of thread handles.
1856
1857         * threads.h: Define thread and process creation flags
1858
1859 2001-11-12  Dick Porter  <dick@ximian.com>
1860
1861         * critical-sections.c: Implement critical sections
1862
1863 2001-11-12  Dick Porter  <dick@ximian.com>
1864
1865         * semaphores.c: Implement semaphores
1866
1867         * wait.c (wait_for_item): Maintain a wait count rather than count
1868         signalled booleans.
1869
1870         * threads.c (thread_wait_multiple): Don't lock the wait item, that
1871         will block other wait threads
1872
1873 2001-11-11  Dick Porter  <dick@ximian.com>
1874
1875         * Makefile.am: Rename some automake variables
1876         (from Nick Drochak <ndrochak@gol.com>)
1877
1878 2001-11-10  Dick Porter  <dick@ximian.com>
1879
1880         * Makefile.am (libwapiincludedir): Fix include destination
1881
1882         * .cvsignore: Ignore generated files
1883
1884 2001-11-10  Dietmar Maurer  <dietmar@ximian.com>
1885
1886         * pthread-compat.c: added some include files to make it compile on
1887         linux.
1888
1889 2001-11-08  Dick Porter  <dick@ximian.com>
1890
1891         * Initial checkin.
1892
1893         This is a library emulating the win32 threading and IO API.