2002-11-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
[mono.git] / mono / io-layer / ChangeLog
1 2002-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2
3         * error.[ch]: added errno_to_WSA (). It displays a warning and return
4         WSASYSCALLFAILURE if there is no error mapping for the given errno,
5
6         * sockets.c: use errno_to_WSA and fixed display of warning for h_errno.
7
8 2002-10-31  Dick Porter  <dick@ximian.com>
9
10         * io.h: 
11         * io.c: Define and use INVALID_FILE_ATTRIBUTES
12
13 2002-10-07  Dick Porter  <dick@ximian.com>
14
15         * timefuncs.c:
16         * daemon.c: Use a more accurate time source for process start and
17         end times.
18
19 2002-10-03  Dick Porter  <dick@ximian.com>
20
21         * daemon.c:
22         * handles.c:
23         * threads.c:  Fixes for freebsd.  Make sure that mutex and condition
24         creation and deletion happen in the process that owns them, when
25         POSIX shared thread objects aren't supported.  This breaks on
26         freebsd, as pthread_t is a pointer to data.
27
28 2002-10-02  Dick Porter  <dick@ximian.com>
29
30         * shared.c: Use mmap() instead of sysv shm for the shared data.
31
32         * wapi-private.h (_WAPI_HANDLE_VERSION): Reset back to 0, for the
33         new system
34
35         * daemon-private.h: 
36         * daemon.c: mmap()ed regions survive fork, so just pass the
37         pointer to _wapi_daemon_main instead of mapping it again.
38
39 2002-10-01  Dick Porter  <dick@ximian.com>
40
41         * timed-thread.c: Kludge for CREATE_SUSPENDED thread creation.
42         Unfortunately libgc uses the same thread suspend technique that I
43         want to, and the two don't mix: libgc will deadlock when it tries
44         to stop the world if a thread has already been suspended by
45         someone else.  Just do the simple suspended create rather than the
46         general purpose thread suspension for now.
47
48         * threads.c: Pass create flags to the timed_thread create call, to
49         implement suspended thread creation.  ResumeThread() partially
50         implemented, to cope with the case where a newly created but
51         suspended thread is launched.
52
53 2002-09-30  Dick Porter  <dick@ximian.com>
54
55         * sockets.c (ioctlsocket): Set non-blocking mode in a better way,
56         with fcntl.
57
58 2002-09-27  Dick Porter  <dick@ximian.com>
59
60         * semaphores.c: Only include semaphore.h if it's present. Patch
61         for BSD from jmmv@hispabsd.org (Julio Merino).
62
63 2002-09-27  Dick Porter  <dick@ximian.com>
64
65         * processes.c: Pass environment and working directory to the
66         daemon when forking.  Don't let argv[0] be duplicated when looking
67         for the program name.  Implement EnumProcessModules (simple
68         version for now, lsof-style later if needed), GetModuleBaseName,
69         {Get,Set}ProcessWorkingSetSize (just faked, because the vm hints
70         aren't available on Linux).
71
72         * process-private.h: Store the process name, and the working set
73         min and max
74
75         * handles.c:
76         * handles-private.h: New functions to store and retrieve an array
77         of strings in the scratch space
78
79         * daemon.c: Don't miss deleting some handles when a client exits
80         (we used to rely on the client doing the final cleanup, but
81         obviously if the client is no longer there the daemon has to do
82         it).
83
84         Process forking now sets the environment and the working
85         directory.
86
87         * io.c: Don't confuse fd 0 with an unassigned handle struct
88
89         * atomic.h: Add a google cache alternative to the msdn URL
90
91 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
92
93         * sockets.c:
94         (_wapi_recvfrom): added ECONNRESET to the switch.
95
96 2002-09-24  Mark Crichton  <crichton@gimp.org>
97
98         * atomic.h: Yea.  On linux, sparc isn't sparc, it's __sparc__.
99         Added to ifdef.
100
101 2002-09-19  Mark Crichton  <crichton@gimp.org>
102
103         * daemon.c, shared.c: Added NEED_LINK_UNLINK for systems that
104         dont have Linux's abstract filesystem for sockets.
105
106 2002-09-19  Mark Crichton  <crichton@gimp.org>
107
108         * atomic.h: Added SPARC atomic asm code.
109         * daemon.c, handles-private.h, handles.c, wapi-private.h:
110         undefined _POSIX_THREAD_PROCESS_SHARED.  This actually exists on
111         Solaris 9, however, the code paths don't seem to work.  More testing
112         on the shared case is *really* needed.
113
114 2002-09-03  Dick Porter  <dick@ximian.com>
115
116         * threads.h: 
117         * threads.c: Removed PosixKillThread(), because it's not in the
118         w32 api
119
120 2002-08-20  Dick Porter  <dick@ximian.com>
121
122         * handles.c (_wapi_handle_scratch_store): Made stored byte lengths
123         multiples of 4 bytes, to keep header structures aligned.  Needed
124         for sparc, at least. (Patch from crichton@gimp.org)
125
126         * handles.c: Removed 'disable_shm' variable (we've defaulted to
127         building with shm enabled for months now)
128
129 2002-08-19  Dick Porter  <dick@ximian.com>
130
131         * daemon.c: Rewrote the poll() loop to use GIOChannels instead,
132         for legacy NeXT-based systems.
133
134 2002-08-12  Dick Porter  <dick@ximian.com>
135
136         * atomic.h: Rename some parameters to avoid c++ keywords (Patch
137         from Joseph Wenninger <kde@jowenn.at>)
138
139 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
140
141         * threads.c: use fast spinlocks by default
142
143 2002-08-02  Dick Porter  <dick@ximian.com>
144
145         * io.c (GetStdHandle): Add a handle reference when returning a
146         duplicate console handle.  This fixes the unref_handle errors in
147         NUnit.
148
149 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
150
151         * threads.c (TLS_PTHREAD_MUTEX): define this because else some
152         tests does not work
153
154 2002-08-01  Dick Porter  <dick@ximian.com>
155
156         * threads.c: Use atomic spinlocks in TLS functions
157
158         * mono-spinlock.h:
159         * Makefile.am: Added mono-spinlock.h
160
161 2002-07-21  Jeffrey Stedfast  <fejj@ximian.com>
162
163         * daemon-messages.c: #include <sys/types.h> and <sys/sockets.h> -
164         these are needed for sendmsg() and also for struct msghdr (at
165         least on Solaris). Solaris still won't build because struct msghdr
166         doesn't have msg_flags, msg_control, or msg_controllen members.
167         (CMSG_SPACE): Define for systems that don't have it.
168         (CMSG_LEN): Same.
169
170 2002-07-20  Dick Porter  <dick@ximian.com>
171
172         * wapi-private.h:
173         * io-private.h:
174         * io.h:
175         * io.c:
176         * handles.c: Implemented pipe handles
177         
178         * handles.c:
179         * daemon.c: Fixed bug in handle closing.
180
181         * shared.c:
182         * daemon.c: Forked processes now close all open file descriptors.
183
184 Fri Jul 19 19:05:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
185
186         * sockets.h, io-layer.h, critical-sections.h: don't include config.h
187         in header files.
188
189 2002-07-19  Martin Baulig  <martin@gnome.org>
190
191         * threads.c (ExitThread): Call exit() if no threads has been
192         created yet.
193
194 2002-07-17  Dick Porter  <dick@ximian.com>
195
196         * daemon-messages.c: Freebsd fixes from Andreas Kohn
197         <andreas.kohn@gmx.net>
198
199 2002-07-15  Dick Porter  <dick@ximian.com>
200
201         * io.c: Removed bogus console_flush() method, that was just cut
202         and pasted from file_flush when I separated the two handle types.
203
204 2002-07-12  Dick Porter  <dick@ximian.com>
205
206         * io.c (convert_from_flags): Fixed misunderstanding wrt fcntl
207         flags.  Fixes bug 27633.
208
209 2002-07-12  Dick Porter  <dick@ximian.com>
210
211         * wapi-private.h:
212         * handles.c:
213         * daemon.c: Use size of sockaddr_un.sun_path from config.h
214
215 2002-07-12  Dick Porter  <dick@ximian.com>
216
217         * processes.c (CreateProcess): Send stdin, stdout and stderr
218         handles if the startup info doesnt specify new ones
219
220         * io.c (GetStdHandle): Return the same handle when the same
221         standard handle is requested
222
223         * handles.c: Pass file descriptors when forking
224
225         * daemon.c: Use supplied file descriptors when forking a new
226         process
227
228         * daemon-messages.h: 
229         * daemon-messages.c: Pass stdin, stdout and stderr file
230         descriptors to the daemon (used when forking)
231
232 2002-07-11  Miguel de Icaza  <miguel@ximian.com>
233
234         * daemon.c (_wapi_daemon_main): Use sizeof
235         (main_socket_address.sun_path) instead of hardcoded 108 value.
236
237         * handles.c (shared_init): Use sizeof
238         (shared_socket_address.sun_path) instead of hardcoded 108 value.
239
240 2002-07-10  Dennis Haney  <davh@davh.dk>
241
242         * shared.c:
243         * handles.c:
244         * daemon.c: Lots of documentation, some added error checking, and
245         code readability improvements.
246
247         * daemon-messages.h: Add the Error request type to improve error
248         checking.
249
250         * daemon-messages.c: Do a bit more error checking on send() and
251         recv(), and log errors with a higher severity level.
252
253 2002-07-04  Dick Porter  <dick@ximian.com>
254
255         * daemon.c (process_process_fork): Fix argument handling, due to
256         buggy understanding of g_strsplit() behaviour.
257
258 2002-07-03  Dick Porter  <dick@ximian.com>
259
260         * threads.h:
261         * threads.c: Implement OpenThread().  Define access-control values
262         for thread handles.
263
264         * wapi.h:
265         * processes.h:
266         * access.h:
267         * Makefile.am: Added access.h, to hold shared access-control
268         definitions
269
270 2002-07-02  Dick Porter  <dick@ximian.com>
271
272         * wapi-private.h (_WAPI_HANDLE_VERSION): New protocol version
273         
274 2002-07-02  Dick Porter  <dick@ximian.com>
275
276         * handles.c (shared_init): Make a second attempt to contact the
277         daemon if the shared memory attach succeeds, but the connect()
278         fails. (This copes with the daemon crashing without cleaning up
279         the shared memory.)
280
281         * Makefile.am: 
282         * daemon-private.h:
283         * daemon.c:
284         * shared.c (_wapi_shm_attach): Don't exec() anything when we fork
285         the daemon, it's now built into the library.
286
287 2002-06-25  Dick Porter  <dick@ximian.com>
288
289         * handles.c:
290         * handles-private.h:
291         * daemon-messages.h:
292         * daemon.c: Process forking and handle data management
293
294         * processes.h:
295         * process-private.h:
296         * processes.c: Process forking and other support functions
297
298 2002-06-25  Dick Porter  <dick@ximian.com>
299
300         * versioninfo.h: PE resource decoding
301
302         * unicode.c (_wapi_unicode_to_utf8): g_utf16_to_utf8 doesnt need
303         to be told the string length
304
305         * io.c: Removed the ACTUALLY_DO_UNICODE option.  Fixed some leaks.
306         Moved _wapi_time_t_to_filetime and the WapiFileTime typedef to
307         timefuncs.c
308
309 2002-06-12  Dick Porter  <dick@ximian.com>
310
311         * daemon.c: 
312         * daemon-messages.c: Handle SIGPIPE in a non-stupid way in the
313         daemon, if MSG_NOSIGNAL isn't available.  Thanks to Jaroslaw
314         Kowalski <jarek@atm.com.pl> for pointing out the bogosity.
315
316 2002-06-10  Jaroslaw Kowalski <jarek@atm.com.pl>
317
318         * sockets.c, daemon-messages.c: Prevent SIGPIPE from being raised
319         when writing to a closed socket.
320
321 2002-06-08  Jeffrey Stedfast  <fejj@ximian.com>
322
323         * mono-mutex.c (mono_once): New convenience function for my
324         previous fix.
325
326         * handles.c:
327         * error.c: 
328         * critical-sections.c: 
329         * threads.c: 
330         * sockets.c: 
331         * semaphores.c: 
332         * processes.c: 
333         * mutexes.c: 
334         * io.c: 
335         * events.c: 
336         * atomic.c: Use mono_once() rather than pthread_once().
337
338 2002-06-06  Jeffrey Stedfast  <fejj@ximian.com>
339
340         * handles.c (_wapi_handle_new): pthread_once() is not atomic, so
341         if multiple threads all try to call _wapi_handle_new() before the
342         shared data has been initialized, it is possible that we could get
343         into a condition where shared_init() is being executed and later
344         threads will pass by pthread_once() due to the fact that it has
345         already been called and so therefor will attempt to use the shared
346         data before it has been completely initialized. If we instead use
347         a standard mutex locking mechanism around shared_init(), we can
348         avoid the situation entirely. By wrapping the mutex locking in a
349         check to see if we've already initialized the data, we can even
350         avoid wasting resources by having to lock/unlock the mutex in any
351         later calls (the only time we'd have to worry about
352         locking/unlocking is the initial race to call shared_init() at
353         startup).
354
355 Sat Jun 1 13:27:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
356
357         * atomic.h: inline asm fixes from Dennis Haney (davh@davh.dk).
358
359 Fri May 31 16:21:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
360
361         * daemon.c, handles.c: rename "sun" local var since it's apparently
362         a #define on Solaris.
363
364 Fri May 31 15:40:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
365
366         * daemon-messages.c: work-around MSG_NOSIGNAL missing on some
367         platforms.
368
369 2002-05-15  Dick Porter  <dick@ximian.com>
370
371         * wait.c: Fix a deadlock in WaitForMultipleObjects
372
373 2002-05-14  Dick Porter  <dick@ximian.com>
374
375         * io.c: Fix a cut&paste error, found by
376         Jaroslaw Kowalski <jarek@atm.com.pl>
377
378 2002-05-10  Dan Lewis  <dihlewis@yahoo.co.uk>
379
380         * io.c: Nasty typo.
381
382 2002-05-09  Dick Porter  <dick@ximian.com>
383
384         * threads.c: 
385         * semaphores.c: 
386         * processes.c: 
387         * mutexes.c: 
388         * handles-private.h: 
389         * events.c: 
390         * Makefile.am: Remove now-unused file wait-private.h
391
392 2002-05-08  Dick Porter  <dick@ximian.com>
393
394         * shared.c: Better error messages, and report when daemon
395         connection fails rather than blocking forever.  Do some more
396         shared memory sanity checking.
397
398         * handles.c: Better error messages when connecting to shared
399         memory and the handle daemon.  Fall back to non-shared handles if
400         an error occurs.  Set the default back to 'shared handles'.  Fix a
401         crashing bug in scratch space allocation that mangled the block
402         headers.
403
404 2002-05-07  Miguel de Icaza  <miguel@ximian.com>
405
406         * handles.c (shared_init): Disable SHM for now, people have too
407         many problems with this, and the diagnostics are not helping.
408
409 2002-05-06  Dan Lewis  <dihlewis@yahoo.co.uk>
410
411         * io.c: CreateFile sets win32 last error.
412
413 2002-05-05  Dick Porter  <dick@ximian.com>
414
415         * wapi-private.h: 
416         * handles-private.h:
417         * io.c: 
418         * io-private.h:
419         * mutexes.c: 
420         * mutex-private.h: 
421         * processes.c: 
422         * process-private.h: 
423         * semaphores.c: 
424         * semaphore-private.h: 
425         * sockets.c: 
426         * socket-private.h: 
427         * events.c: 
428         * event-private.h: Simplify the WapiHandleOps struct: take out all
429         the file-specific entries, leaving just the items that operate on
430         handles themselves.  Split the close operation into shared and
431         private parts: shared close is called by the daemon.
432
433         * handles.c: As above, but also pass handle allocation, ref and
434         unref operations to the daemon.  Populate the handle_ops array at
435         compile time, because the daemon needs to call ops on handles too.
436         Don't bother to track open handle counts any more, the daemon does
437         that.
438         
439         * threads.c: 
440         * thread-private.h: As above, but also make the thread data
441         handle-private.
442
443         * shared.c: Fork a handle daemon if the calling process created
444         the shared memory segment.
445
446         * daemon.c:
447         * daemon-messages.c:
448         * daemon-messages.h:
449         * Makefile.am: Build a daemon to manage handle allocation and
450         destruction without needing to lock the shared memory
451
452 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
453
454         * atomic.c: Changed to use a normal mutex rather than a spinlock
455         since a lot of platforms seem to not have them :\
456
457 2002-04-30  Dick Porter  <dick@ximian.com>
458
459         * Completely rewrote the handle waiting code: removed the helper
460         thread and its attendant complexity.  All handle waiting is now
461         abstracted into the WaitForSingleObject() and
462         WaitForMultipleObjects() functions.
463
464         * Implemented inter-process sharing of handles using sysv shared
465         memory.  This makes handles even more opaque, with a handle now
466         just an index into an array.
467         
468 2002-04-25  Dan Lewis  <dihlewis@yahoo.co.uk>
469
470         * io.c: unitialized pointer in GetCurrentDirectory.
471
472 Sat Apr 20 13:37:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
473
474         * threads.c: destroy the mutex at thread destruction
475         (if/when thread destruction code will be actually called).
476         When protecting a tls data pointer from the gc, use also the 
477         thread id in the key.
478         
479 Wed Apr 17 18:36:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
480
481         * timed-thread.c: avoid race condition when setting the thread to
482         detached.
483
484 2002-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
485
486         * jit.h: to more #include lines to avoid breaking compilation
487         under windows when upgrading mingw and w32api to version
488         1.3 (thanks Dick!).
489
490 2002-04-16  Dick Porter  <dick@ximian.com>
491
492         * atomic.h: Explanatory comment about lack of 80386 support
493
494 2002-04-15  Dick Porter  <dick@ximian.com>
495
496         * atomic.h: use xaddl for InterlockedIncrement() and
497         InterlockedDecrement().  Use cmpxchgl in a loop for
498         InterlockedExchange() and InterlockedExchangePointer().
499
500 Mon Apr 15 13:31:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
501
502         * unicode.c: fix unicode_len() to not access uninitialized memory
503         (and updated to conform to mono code style).
504
505 Fri Mar 29 17:15:11 CET 2002 Paolo Molaro <lupus@ximian.com>
506
507         * io.c: EEXISTS is ignored for directory creation.
508         * mono-mutex.h: remove silly "pragma }" that emacs users insert
509         because they use a broken editor:-)
510
511 2002-03-28  Dick Porter  <dick@ximian.com>
512
513         * sockets.h: 
514         * sockets.c: 
515         * io.c: 
516         * handles.h: 
517         * handles.c: Warning cleanups
518
519 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
520
521         * unicode.h, unicode.c: changed to gunichar2
522         * io.h, io.c: changed strings to gunichar2*, added
523         SetFileAttributes(), GetCurrentDirectory(), SetCurrentDirectory(),
524         some fixes to FindFirstFile() and friends.
525
526 2002-03-26  Dick Porter  <dick@ximian.com>
527
528         * types.h: Implement the large integer struct
529
530         * timefuncs.h:
531         * timefuncs.c: Dummy functions that don't yet implement
532         QueryPerformanceCounter() and QueryPerformanceFrequency()
533
534         * threads.h:
535         * threads.c: Implement SleepEx()
536
537         * system.h:
538         * system.c: Beginnings of GetSystemInfo()
539
540         * mono-mutex.c (pthread_mutex_timedlock): Fix a ms/ns conversion
541         thinko
542
543         * context.h:
544         * context.c: Dummy function that doesnt yet implement
545         GetThreadContext()
546
547         * atomic.h: 
548         * atomic.c: Interlocked functions
549
550 Mon Mar 25 13:01:40 CET 2002 Paolo Molaro <lupus@ximian.com>
551
552         * threads.c: use a gc-safe hash table to store tls pointers.
553
554 2002-03-22  Dick Porter  <dick@ximian.com>
555
556         * threads.c: Fix a race condition where a thread can start and
557         exit before the handle has been properly initialised (no reason
558         why the handle couldn't be initialised beforehand, so do so)
559
560         Fix a ms to ns conversion magnitude thinko.
561
562 2002-03-21  Dick Porter  <dick@ximian.com>
563
564         * semaphores.c: Fix a problem when waiting for one or more
565         semaphores, and another semaphore is Released (all waiting
566         semaphores assumed they were signalled)
567
568 2002-03-29  Dan Lewis <dihlewis@yahoo.co.uk>
569
570         * io.h, io.c, uglify.h: added MoveFile, CopyFile, CreateDirectory,
571         RemoveDirectory, GetFileAttributes, GetFileAttributesEx
572
573 2002-03-19  Dietmar Maurer  <dietmar@ximian.com>
574
575         * threads.c (Sleep): bug fix: 1ms == 1000000ns
576
577 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
578
579         * io.h, io.c, events.c, mutexes.c, semaphores.c, sockets.c,
580         threads.c, io.c: added flush method to handles.
581
582         * io.c: FlushFileBuffers() and FindFirstFile() functions.
583
584 Thu Mar 7 17:21:52 CET 2002 Paolo Molaro <lupus@ximian.com>
585
586         * threads.c, timed-thread.c, wait.c: Boehm-GC anable.
587
588 2002-02-20  Dick Porter  <dick@ximian.com>
589
590         * io-layer.h: Always build without cygwin support on windows
591
592 Mon Feb 18 15:50:59 CET 2002 Paolo Molaro <lupus@ximian.com>
593
594         * sockets.c: #undef DEBUG.
595
596 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
597
598         * io-layer.h: conditionally include sys/filio.h and sys/sockio.h
599         for FIONBIO, FIONREAD, and SIOCATMARK.
600
601 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
602
603         * sockets.c: conditionally include sys/filio.h and sys/sockio.h
604         for FIONBIO, FIONREAD, and SIOCATMARK.
605
606 2002-02-13  Dick Porter  <dick@ximian.com>
607
608         * sockets.c: Implement shutdown and select
609
610 2002-02-13  Jeffrey Stedfast  <fejj@ximian.com>
611
612         * mono-mutex.[c,h]: New source files that thinly wrap all pthread
613         functions that take pthread_mutex_t and/or pthread_mutexattr_t
614         arguments for the sake of portability. Implements recursive
615         mutexes and pthread_mutex_timedlock.
616
617         * critical-sections.c:
618         * events.c:
619         * handles.c:
620         * mutexes.c:
621         * semaphores.c:
622         * threads.c:
623         * timed-thread.c:
624         * wait.c: Use the mono-mutex wrapper portability functions/macros.
625
626         * pthread-compat.[c,h]: Replaced by mono-mutex.[c,h]
627
628 2002-01-23  Dick Porter  <dick@ximian.com>
629
630         * sockets.c: Networking support, mostly wrapping BSD socket APIs
631         with handle code, and translating errno into w32 error codes.
632
633         * macros.h: Some w32 macros used with the socket support
634
635         * error.c: Implemented GetLastError() and SetLastError()
636
637         * Makefile.am: Added sockets, with kludge to override some symbols
638
639 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
640
641         * unicode.c (_wapi_unicode_to_utf8): byteswap UTF16 strings before
642         passing them to iconv
643         (_wapi_unicode_to_utf8): only swap bytes on LE systems, remove bug
644         from previous commit.
645
646 2001-12-11  Dick Porter  <dick@ximian.com>
647
648         * io.c: Implement DeleteFile(), GetFileTime(), SetFileTime() and
649         FileTimeToSystemTime().
650
651         * unicode.c (unicode_len): Nasty way of finding length of unicode
652         string with embedded NULLs (counts until two NULLs together).
653
654         * mutexes.c (mutex_close): 
655         * events.c (event_close): Release the internal pthreads resources
656
657 2001-11-26  Dick Porter  <dick@ximian.com>
658
659         * critical-sections.c:
660         * events.c:
661         * handles.c:
662         * io.c:
663         * mutexes.c:
664         * semaphores.c:
665         * threads.c:
666         * timed-thread.c:
667         * wait.c: turn off DEBUG messages
668
669 2001-11-22  Dick Porter  <dick@ximian.com>
670
671         * handles.c (SignalObjectAndWait): Implement
672
673         * wait.c (WaitForSingleObject): Fix case where timeout == 0
674
675         * threads.c:
676         * semaphores.c:
677         * mutexes.c:
678         * io.c:
679         * events.c: Support for SignalObjectAndWait
680         
681 2001-11-21  Dick Porter  <dick@ximian.com>
682
683         * events.c:
684         * handles.c:
685         * mutexes.c:
686         * semaphores.c:
687         * threads.c:
688         * wait.c: Reliable method of returning which handle was signalled
689         on return from WaitForMultipleObjects().
690
691 2001-11-21  Dick Porter  <dick@ximian.com>
692
693         * events.c: Implement events
694
695 2001-11-15  Dick Porter  <dick@ximian.com>
696
697         * mutexes.c: Implement mutexes
698
699         * threads.c: 
700         * semaphores.c: 
701         * misc.c: Factor out some common code
702
703 2001-11-13  Dick Porter  <dick@ximian.com>
704
705         * threads.c: Implement TLS.  Implement GetCurrentThreadId(), and
706         GetCurrentThread() by maintaining a hash of thread handles.
707
708         * threads.h: Define thread and process creation flags
709
710 2001-11-12  Dick Porter  <dick@ximian.com>
711
712         * critical-sections.c: Implement critical sections
713
714 2001-11-12  Dick Porter  <dick@ximian.com>
715
716         * semaphores.c: Implement semaphores
717
718         * wait.c (wait_for_item): Maintain a wait count rather than count
719         signalled booleans.
720
721         * threads.c (thread_wait_multiple): Don't lock the wait item, that
722         will block other wait threads
723
724 2001-11-11  Dick Porter  <dick@ximian.com>
725
726         * Makefile.am: Rename some automake variables
727         (from Nick Drochak <ndrochak@gol.com>)
728
729 2001-11-10  Dick Porter  <dick@ximian.com>
730
731         * Makefile.am (libwapiincludedir): Fix include destination
732
733         * .cvsignore: Ignore generated files
734
735 2001-11-10  Dietmar Maurer  <dietmar@ximian.com>
736
737         * pthread-compat.c: added some include files to make it compile on
738         linux.
739
740 2001-11-08  Dick Porter  <dick@ximian.com>
741
742         * Initial checkin.
743
744         This is a library emulating the win32 threading and IO API.
745
746