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