1 2003-04-03 Martin Baulig <martin@ximian.com>
3 * timed-thread.h (TimedThread): Added `suspended_sem',
4 `suspend_count' and `stack_ptr'.
6 2003-03-28 Dick Porter <dick@ximian.com>
8 * atomic.h: PPC support gratiously donated to the public domain
9 by John Duncan <jddst19@mac.com>
11 2003-03-20 Dick Porter <dick@ximian.com>
13 * sockets.c (_wapi_connect): If connect() fails with EACCES, try
14 setting SO_BROADCAST and connecting again. Fixes bug 39178.
16 2003-03-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18 * processes.c: included Jerome Laban's patch and call SetLastError when
19 the executable is not found.
21 2003-03-03 Dick Porter <dick@ximian.com>
23 * io.c (CreateFile): Try opening directories readonly, so that
24 timestamps can be adjusted. Patch by Elan Feingold
25 <efeingold@mn.rr.com>.
27 2003-02-25 Dick Porter <dick@ximian.com>
29 * shared.c (_wapi_shm_attach): Return a failure code on system
30 call errors, rather than exiting.
32 2003-02-21 Dick Porter <dick@ximian.com>
34 * processes.c (GetCurrentProcessId): Use the current process
35 handle to return the process ID, as getpid() is unreliable
36 (linuxthreads gives each thread a different pid). Fixes bug
39 2003-02-21 Dick Porter <dick@ximian.com>
41 * io.c (FindNextFile): Skip over dangling symlinks. Fixes bug
44 2003-02-11 Dick Porter <dick@ximian.com>
47 * timefuncs.c: Added GetTickCount()
49 2003-02-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
51 * error.c: added WSA_EHOSTUNREACH mapping.
53 2003-01-26 Miguel de Icaza <miguel@ximian.com>
55 * io.c (SetFileAttributes): This routine is not currently
56 implemented for the general case, but I added a special case to
57 set the executable bit on Linux.
59 Wed Jan 15 15:55:40 CET 2003 Paolo Molaro <lupus@ximian.com>
61 * sockets.h, daemon.c, io.c: compilation fixes on MacOSX.
63 2003-01-08 Dick Porter <dick@ximian.com>
65 * sockets.c: Fixed setting blocking mode to true (fixes bug 36388)
67 2002-12-11 Juli Mallett <jmallett@FreeBSD.org>
69 * daemon.c, handles-private.h, handles.c, wapi-private.h:
70 Check for an implementation which says it supports
71 _POSIX_THREAD_PROCESS_SHARED, rather than just one that
72 defines the symbol. Defined but with a value of -1 still
73 means that it is unsupported.
75 2002-12-08 Martin Baulig <martin@ximian.com>
77 * handles.c (_wapi_handle_new): Create new non-shared handles with
78 an initial refcount of 1, not 0.
80 2002-11-22 Dietmar Maurer <dietmar@ximian.com>
82 * threads.c (TlsGetValue): removed unnecessary mutex
84 2002-11-20 Dick Porter <dick@ximian.com>
86 * timed-thread.c (_wapi_timed_thread_attach): Attached threads
87 need to store their data structure too.
89 * threads.c: Make sure the threading data is initialised wherever
92 2002-11-15 Dick Porter <dick@ximian.com>
94 * timed-thread.c: Removed unneeded parameters in
95 _wapi_timed_thread_attach().
97 * threads.c: Renamed AttachThread() to make it not look like
98 external API. Removed unneeded parameters.
100 2002-11-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
102 * error.[ch]: added errno_to_WSA (). It displays a warning and return
103 WSASYSCALLFAILURE if there is no error mapping for the given errno,
105 * sockets.c: use errno_to_WSA and fixed display of warning for h_errno.
107 2002-10-31 Dick Porter <dick@ximian.com>
110 * io.c: Define and use INVALID_FILE_ATTRIBUTES
112 2002-10-07 Dick Porter <dick@ximian.com>
115 * daemon.c: Use a more accurate time source for process start and
118 2002-10-03 Dick Porter <dick@ximian.com>
122 * threads.c: Fixes for freebsd. Make sure that mutex and condition
123 creation and deletion happen in the process that owns them, when
124 POSIX shared thread objects aren't supported. This breaks on
125 freebsd, as pthread_t is a pointer to data.
127 2002-10-02 Dick Porter <dick@ximian.com>
129 * shared.c: Use mmap() instead of sysv shm for the shared data.
131 * wapi-private.h (_WAPI_HANDLE_VERSION): Reset back to 0, for the
135 * daemon.c: mmap()ed regions survive fork, so just pass the
136 pointer to _wapi_daemon_main instead of mapping it again.
138 2002-10-01 Dick Porter <dick@ximian.com>
140 * timed-thread.c: Kludge for CREATE_SUSPENDED thread creation.
141 Unfortunately libgc uses the same thread suspend technique that I
142 want to, and the two don't mix: libgc will deadlock when it tries
143 to stop the world if a thread has already been suspended by
144 someone else. Just do the simple suspended create rather than the
145 general purpose thread suspension for now.
147 * threads.c: Pass create flags to the timed_thread create call, to
148 implement suspended thread creation. ResumeThread() partially
149 implemented, to cope with the case where a newly created but
150 suspended thread is launched.
152 2002-09-30 Dick Porter <dick@ximian.com>
154 * sockets.c (ioctlsocket): Set non-blocking mode in a better way,
157 2002-09-27 Dick Porter <dick@ximian.com>
159 * semaphores.c: Only include semaphore.h if it's present. Patch
160 for BSD from jmmv@hispabsd.org (Julio Merino).
162 2002-09-27 Dick Porter <dick@ximian.com>
164 * processes.c: Pass environment and working directory to the
165 daemon when forking. Don't let argv[0] be duplicated when looking
166 for the program name. Implement EnumProcessModules (simple
167 version for now, lsof-style later if needed), GetModuleBaseName,
168 {Get,Set}ProcessWorkingSetSize (just faked, because the vm hints
169 aren't available on Linux).
171 * process-private.h: Store the process name, and the working set
175 * handles-private.h: New functions to store and retrieve an array
176 of strings in the scratch space
178 * daemon.c: Don't miss deleting some handles when a client exits
179 (we used to rely on the client doing the final cleanup, but
180 obviously if the client is no longer there the daemon has to do
183 Process forking now sets the environment and the working
186 * io.c: Don't confuse fd 0 with an unassigned handle struct
188 * atomic.h: Add a google cache alternative to the msdn URL
190 2002-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
193 (_wapi_recvfrom): added ECONNRESET to the switch.
195 2002-09-24 Mark Crichton <crichton@gimp.org>
197 * atomic.h: Yea. On linux, sparc isn't sparc, it's __sparc__.
200 2002-09-19 Mark Crichton <crichton@gimp.org>
202 * daemon.c, shared.c: Added NEED_LINK_UNLINK for systems that
203 dont have Linux's abstract filesystem for sockets.
205 2002-09-19 Mark Crichton <crichton@gimp.org>
207 * atomic.h: Added SPARC atomic asm code.
208 * daemon.c, handles-private.h, handles.c, wapi-private.h:
209 undefined _POSIX_THREAD_PROCESS_SHARED. This actually exists on
210 Solaris 9, however, the code paths don't seem to work. More testing
211 on the shared case is *really* needed.
213 2002-09-03 Dick Porter <dick@ximian.com>
216 * threads.c: Removed PosixKillThread(), because it's not in the
219 2002-08-20 Dick Porter <dick@ximian.com>
221 * handles.c (_wapi_handle_scratch_store): Made stored byte lengths
222 multiples of 4 bytes, to keep header structures aligned. Needed
223 for sparc, at least. (Patch from crichton@gimp.org)
225 * handles.c: Removed 'disable_shm' variable (we've defaulted to
226 building with shm enabled for months now)
228 2002-08-19 Dick Porter <dick@ximian.com>
230 * daemon.c: Rewrote the poll() loop to use GIOChannels instead,
231 for legacy NeXT-based systems.
233 2002-08-12 Dick Porter <dick@ximian.com>
235 * atomic.h: Rename some parameters to avoid c++ keywords (Patch
236 from Joseph Wenninger <kde@jowenn.at>)
238 2002-08-05 Dietmar Maurer <dietmar@ximian.com>
240 * threads.c: use fast spinlocks by default
242 2002-08-02 Dick Porter <dick@ximian.com>
244 * io.c (GetStdHandle): Add a handle reference when returning a
245 duplicate console handle. This fixes the unref_handle errors in
248 2002-08-01 Dietmar Maurer <dietmar@ximian.com>
250 * threads.c (TLS_PTHREAD_MUTEX): define this because else some
253 2002-08-01 Dick Porter <dick@ximian.com>
255 * threads.c: Use atomic spinlocks in TLS functions
258 * Makefile.am: Added mono-spinlock.h
260 2002-07-21 Jeffrey Stedfast <fejj@ximian.com>
262 * daemon-messages.c: #include <sys/types.h> and <sys/sockets.h> -
263 these are needed for sendmsg() and also for struct msghdr (at
264 least on Solaris). Solaris still won't build because struct msghdr
265 doesn't have msg_flags, msg_control, or msg_controllen members.
266 (CMSG_SPACE): Define for systems that don't have it.
269 2002-07-20 Dick Porter <dick@ximian.com>
275 * handles.c: Implemented pipe handles
278 * daemon.c: Fixed bug in handle closing.
281 * daemon.c: Forked processes now close all open file descriptors.
283 Fri Jul 19 19:05:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
285 * sockets.h, io-layer.h, critical-sections.h: don't include config.h
288 2002-07-19 Martin Baulig <martin@gnome.org>
290 * threads.c (ExitThread): Call exit() if no threads has been
293 2002-07-17 Dick Porter <dick@ximian.com>
295 * daemon-messages.c: Freebsd fixes from Andreas Kohn
296 <andreas.kohn@gmx.net>
298 2002-07-15 Dick Porter <dick@ximian.com>
300 * io.c: Removed bogus console_flush() method, that was just cut
301 and pasted from file_flush when I separated the two handle types.
303 2002-07-12 Dick Porter <dick@ximian.com>
305 * io.c (convert_from_flags): Fixed misunderstanding wrt fcntl
306 flags. Fixes bug 27633.
308 2002-07-12 Dick Porter <dick@ximian.com>
312 * daemon.c: Use size of sockaddr_un.sun_path from config.h
314 2002-07-12 Dick Porter <dick@ximian.com>
316 * processes.c (CreateProcess): Send stdin, stdout and stderr
317 handles if the startup info doesnt specify new ones
319 * io.c (GetStdHandle): Return the same handle when the same
320 standard handle is requested
322 * handles.c: Pass file descriptors when forking
324 * daemon.c: Use supplied file descriptors when forking a new
328 * daemon-messages.c: Pass stdin, stdout and stderr file
329 descriptors to the daemon (used when forking)
331 2002-07-11 Miguel de Icaza <miguel@ximian.com>
333 * daemon.c (_wapi_daemon_main): Use sizeof
334 (main_socket_address.sun_path) instead of hardcoded 108 value.
336 * handles.c (shared_init): Use sizeof
337 (shared_socket_address.sun_path) instead of hardcoded 108 value.
339 2002-07-10 Dennis Haney <davh@davh.dk>
343 * daemon.c: Lots of documentation, some added error checking, and
344 code readability improvements.
346 * daemon-messages.h: Add the Error request type to improve error
349 * daemon-messages.c: Do a bit more error checking on send() and
350 recv(), and log errors with a higher severity level.
352 2002-07-04 Dick Porter <dick@ximian.com>
354 * daemon.c (process_process_fork): Fix argument handling, due to
355 buggy understanding of g_strsplit() behaviour.
357 2002-07-03 Dick Porter <dick@ximian.com>
360 * threads.c: Implement OpenThread(). Define access-control values
366 * Makefile.am: Added access.h, to hold shared access-control
369 2002-07-02 Dick Porter <dick@ximian.com>
371 * wapi-private.h (_WAPI_HANDLE_VERSION): New protocol version
373 2002-07-02 Dick Porter <dick@ximian.com>
375 * handles.c (shared_init): Make a second attempt to contact the
376 daemon if the shared memory attach succeeds, but the connect()
377 fails. (This copes with the daemon crashing without cleaning up
383 * shared.c (_wapi_shm_attach): Don't exec() anything when we fork
384 the daemon, it's now built into the library.
386 2002-06-25 Dick Porter <dick@ximian.com>
391 * daemon.c: Process forking and handle data management
395 * processes.c: Process forking and other support functions
397 2002-06-25 Dick Porter <dick@ximian.com>
399 * versioninfo.h: PE resource decoding
401 * unicode.c (_wapi_unicode_to_utf8): g_utf16_to_utf8 doesnt need
402 to be told the string length
404 * io.c: Removed the ACTUALLY_DO_UNICODE option. Fixed some leaks.
405 Moved _wapi_time_t_to_filetime and the WapiFileTime typedef to
408 2002-06-12 Dick Porter <dick@ximian.com>
411 * daemon-messages.c: Handle SIGPIPE in a non-stupid way in the
412 daemon, if MSG_NOSIGNAL isn't available. Thanks to Jaroslaw
413 Kowalski <jarek@atm.com.pl> for pointing out the bogosity.
415 2002-06-10 Jaroslaw Kowalski <jarek@atm.com.pl>
417 * sockets.c, daemon-messages.c: Prevent SIGPIPE from being raised
418 when writing to a closed socket.
420 2002-06-08 Jeffrey Stedfast <fejj@ximian.com>
422 * mono-mutex.c (mono_once): New convenience function for my
427 * critical-sections.c:
435 * atomic.c: Use mono_once() rather than pthread_once().
437 2002-06-06 Jeffrey Stedfast <fejj@ximian.com>
439 * handles.c (_wapi_handle_new): pthread_once() is not atomic, so
440 if multiple threads all try to call _wapi_handle_new() before the
441 shared data has been initialized, it is possible that we could get
442 into a condition where shared_init() is being executed and later
443 threads will pass by pthread_once() due to the fact that it has
444 already been called and so therefor will attempt to use the shared
445 data before it has been completely initialized. If we instead use
446 a standard mutex locking mechanism around shared_init(), we can
447 avoid the situation entirely. By wrapping the mutex locking in a
448 check to see if we've already initialized the data, we can even
449 avoid wasting resources by having to lock/unlock the mutex in any
450 later calls (the only time we'd have to worry about
451 locking/unlocking is the initial race to call shared_init() at
454 Sat Jun 1 13:27:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
456 * atomic.h: inline asm fixes from Dennis Haney (davh@davh.dk).
458 Fri May 31 16:21:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
460 * daemon.c, handles.c: rename "sun" local var since it's apparently
461 a #define on Solaris.
463 Fri May 31 15:40:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
465 * daemon-messages.c: work-around MSG_NOSIGNAL missing on some
468 2002-05-15 Dick Porter <dick@ximian.com>
470 * wait.c: Fix a deadlock in WaitForMultipleObjects
472 2002-05-14 Dick Porter <dick@ximian.com>
474 * io.c: Fix a cut&paste error, found by
475 Jaroslaw Kowalski <jarek@atm.com.pl>
477 2002-05-10 Dan Lewis <dihlewis@yahoo.co.uk>
481 2002-05-09 Dick Porter <dick@ximian.com>
489 * Makefile.am: Remove now-unused file wait-private.h
491 2002-05-08 Dick Porter <dick@ximian.com>
493 * shared.c: Better error messages, and report when daemon
494 connection fails rather than blocking forever. Do some more
495 shared memory sanity checking.
497 * handles.c: Better error messages when connecting to shared
498 memory and the handle daemon. Fall back to non-shared handles if
499 an error occurs. Set the default back to 'shared handles'. Fix a
500 crashing bug in scratch space allocation that mangled the block
503 2002-05-07 Miguel de Icaza <miguel@ximian.com>
505 * handles.c (shared_init): Disable SHM for now, people have too
506 many problems with this, and the diagnostics are not helping.
508 2002-05-06 Dan Lewis <dihlewis@yahoo.co.uk>
510 * io.c: CreateFile sets win32 last error.
512 2002-05-05 Dick Porter <dick@ximian.com>
523 * semaphore-private.h:
527 * event-private.h: Simplify the WapiHandleOps struct: take out all
528 the file-specific entries, leaving just the items that operate on
529 handles themselves. Split the close operation into shared and
530 private parts: shared close is called by the daemon.
532 * handles.c: As above, but also pass handle allocation, ref and
533 unref operations to the daemon. Populate the handle_ops array at
534 compile time, because the daemon needs to call ops on handles too.
535 Don't bother to track open handle counts any more, the daemon does
539 * thread-private.h: As above, but also make the thread data
542 * shared.c: Fork a handle daemon if the calling process created
543 the shared memory segment.
548 * Makefile.am: Build a daemon to manage handle allocation and
549 destruction without needing to lock the shared memory
551 2002-04-30 Jeffrey Stedfast <fejj@ximian.com>
553 * atomic.c: Changed to use a normal mutex rather than a spinlock
554 since a lot of platforms seem to not have them :\
556 2002-04-30 Dick Porter <dick@ximian.com>
558 * Completely rewrote the handle waiting code: removed the helper
559 thread and its attendant complexity. All handle waiting is now
560 abstracted into the WaitForSingleObject() and
561 WaitForMultipleObjects() functions.
563 * Implemented inter-process sharing of handles using sysv shared
564 memory. This makes handles even more opaque, with a handle now
565 just an index into an array.
567 2002-04-25 Dan Lewis <dihlewis@yahoo.co.uk>
569 * io.c: unitialized pointer in GetCurrentDirectory.
571 Sat Apr 20 13:37:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
573 * threads.c: destroy the mutex at thread destruction
574 (if/when thread destruction code will be actually called).
575 When protecting a tls data pointer from the gc, use also the
576 thread id in the key.
578 Wed Apr 17 18:36:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
580 * timed-thread.c: avoid race condition when setting the thread to
583 2002-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
585 * jit.h: to more #include lines to avoid breaking compilation
586 under windows when upgrading mingw and w32api to version
589 2002-04-16 Dick Porter <dick@ximian.com>
591 * atomic.h: Explanatory comment about lack of 80386 support
593 2002-04-15 Dick Porter <dick@ximian.com>
595 * atomic.h: use xaddl for InterlockedIncrement() and
596 InterlockedDecrement(). Use cmpxchgl in a loop for
597 InterlockedExchange() and InterlockedExchangePointer().
599 Mon Apr 15 13:31:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
601 * unicode.c: fix unicode_len() to not access uninitialized memory
602 (and updated to conform to mono code style).
604 Fri Mar 29 17:15:11 CET 2002 Paolo Molaro <lupus@ximian.com>
606 * io.c: EEXISTS is ignored for directory creation.
607 * mono-mutex.h: remove silly "pragma }" that emacs users insert
608 because they use a broken editor:-)
610 2002-03-28 Dick Porter <dick@ximian.com>
616 * handles.c: Warning cleanups
618 2002-03-27 Dan Lewis <dihlewis@yahoo.co.uk>
620 * unicode.h, unicode.c: changed to gunichar2
621 * io.h, io.c: changed strings to gunichar2*, added
622 SetFileAttributes(), GetCurrentDirectory(), SetCurrentDirectory(),
623 some fixes to FindFirstFile() and friends.
625 2002-03-26 Dick Porter <dick@ximian.com>
627 * types.h: Implement the large integer struct
630 * timefuncs.c: Dummy functions that don't yet implement
631 QueryPerformanceCounter() and QueryPerformanceFrequency()
634 * threads.c: Implement SleepEx()
637 * system.c: Beginnings of GetSystemInfo()
639 * mono-mutex.c (pthread_mutex_timedlock): Fix a ms/ns conversion
643 * context.c: Dummy function that doesnt yet implement
647 * atomic.c: Interlocked functions
649 Mon Mar 25 13:01:40 CET 2002 Paolo Molaro <lupus@ximian.com>
651 * threads.c: use a gc-safe hash table to store tls pointers.
653 2002-03-22 Dick Porter <dick@ximian.com>
655 * threads.c: Fix a race condition where a thread can start and
656 exit before the handle has been properly initialised (no reason
657 why the handle couldn't be initialised beforehand, so do so)
659 Fix a ms to ns conversion magnitude thinko.
661 2002-03-21 Dick Porter <dick@ximian.com>
663 * semaphores.c: Fix a problem when waiting for one or more
664 semaphores, and another semaphore is Released (all waiting
665 semaphores assumed they were signalled)
667 2002-03-29 Dan Lewis <dihlewis@yahoo.co.uk>
669 * io.h, io.c, uglify.h: added MoveFile, CopyFile, CreateDirectory,
670 RemoveDirectory, GetFileAttributes, GetFileAttributesEx
672 2002-03-19 Dietmar Maurer <dietmar@ximian.com>
674 * threads.c (Sleep): bug fix: 1ms == 1000000ns
676 2002-03-19 Dan Lewis <dihlewis@yahoo.co.uk>
678 * io.h, io.c, events.c, mutexes.c, semaphores.c, sockets.c,
679 threads.c, io.c: added flush method to handles.
681 * io.c: FlushFileBuffers() and FindFirstFile() functions.
683 Thu Mar 7 17:21:52 CET 2002 Paolo Molaro <lupus@ximian.com>
685 * threads.c, timed-thread.c, wait.c: Boehm-GC anable.
687 2002-02-20 Dick Porter <dick@ximian.com>
689 * io-layer.h: Always build without cygwin support on windows
691 Mon Feb 18 15:50:59 CET 2002 Paolo Molaro <lupus@ximian.com>
693 * sockets.c: #undef DEBUG.
695 2002-02-14 Jeffrey Stedfast <fejj@ximian.com>
697 * io-layer.h: conditionally include sys/filio.h and sys/sockio.h
698 for FIONBIO, FIONREAD, and SIOCATMARK.
700 2002-02-14 Jeffrey Stedfast <fejj@ximian.com>
702 * sockets.c: conditionally include sys/filio.h and sys/sockio.h
703 for FIONBIO, FIONREAD, and SIOCATMARK.
705 2002-02-13 Dick Porter <dick@ximian.com>
707 * sockets.c: Implement shutdown and select
709 2002-02-13 Jeffrey Stedfast <fejj@ximian.com>
711 * mono-mutex.[c,h]: New source files that thinly wrap all pthread
712 functions that take pthread_mutex_t and/or pthread_mutexattr_t
713 arguments for the sake of portability. Implements recursive
714 mutexes and pthread_mutex_timedlock.
716 * critical-sections.c:
723 * wait.c: Use the mono-mutex wrapper portability functions/macros.
725 * pthread-compat.[c,h]: Replaced by mono-mutex.[c,h]
727 2002-01-23 Dick Porter <dick@ximian.com>
729 * sockets.c: Networking support, mostly wrapping BSD socket APIs
730 with handle code, and translating errno into w32 error codes.
732 * macros.h: Some w32 macros used with the socket support
734 * error.c: Implemented GetLastError() and SetLastError()
736 * Makefile.am: Added sockets, with kludge to override some symbols
738 2001-12-17 Dietmar Maurer <dietmar@ximian.com>
740 * unicode.c (_wapi_unicode_to_utf8): byteswap UTF16 strings before
741 passing them to iconv
742 (_wapi_unicode_to_utf8): only swap bytes on LE systems, remove bug
743 from previous commit.
745 2001-12-11 Dick Porter <dick@ximian.com>
747 * io.c: Implement DeleteFile(), GetFileTime(), SetFileTime() and
748 FileTimeToSystemTime().
750 * unicode.c (unicode_len): Nasty way of finding length of unicode
751 string with embedded NULLs (counts until two NULLs together).
753 * mutexes.c (mutex_close):
754 * events.c (event_close): Release the internal pthreads resources
756 2001-11-26 Dick Porter <dick@ximian.com>
758 * critical-sections.c:
766 * wait.c: turn off DEBUG messages
768 2001-11-22 Dick Porter <dick@ximian.com>
770 * handles.c (SignalObjectAndWait): Implement
772 * wait.c (WaitForSingleObject): Fix case where timeout == 0
778 * events.c: Support for SignalObjectAndWait
780 2001-11-21 Dick Porter <dick@ximian.com>
787 * wait.c: Reliable method of returning which handle was signalled
788 on return from WaitForMultipleObjects().
790 2001-11-21 Dick Porter <dick@ximian.com>
792 * events.c: Implement events
794 2001-11-15 Dick Porter <dick@ximian.com>
796 * mutexes.c: Implement mutexes
800 * misc.c: Factor out some common code
802 2001-11-13 Dick Porter <dick@ximian.com>
804 * threads.c: Implement TLS. Implement GetCurrentThreadId(), and
805 GetCurrentThread() by maintaining a hash of thread handles.
807 * threads.h: Define thread and process creation flags
809 2001-11-12 Dick Porter <dick@ximian.com>
811 * critical-sections.c: Implement critical sections
813 2001-11-12 Dick Porter <dick@ximian.com>
815 * semaphores.c: Implement semaphores
817 * wait.c (wait_for_item): Maintain a wait count rather than count
820 * threads.c (thread_wait_multiple): Don't lock the wait item, that
821 will block other wait threads
823 2001-11-11 Dick Porter <dick@ximian.com>
825 * Makefile.am: Rename some automake variables
826 (from Nick Drochak <ndrochak@gol.com>)
828 2001-11-10 Dick Porter <dick@ximian.com>
830 * Makefile.am (libwapiincludedir): Fix include destination
832 * .cvsignore: Ignore generated files
834 2001-11-10 Dietmar Maurer <dietmar@ximian.com>
836 * pthread-compat.c: added some include files to make it compile on
839 2001-11-08 Dick Porter <dick@ximian.com>
843 This is a library emulating the win32 threading and IO API.