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