1 2003-04-03 Martin Baulig <martin@ximian.com>
3 The following change is conditional to `WITH_INCLUDED_LIBGC'
4 which is not yet enabled by default.
6 * threads.c (SuspendThread, ResumeThread): Fully implemented this.
7 (gc_init): New static function; install a signal handler for
8 SIGPWR which is used to suspend threads. [FIXME: it SIGPWR
9 doesn't exist on all Unix systems, we need to find another
11 (mono_wapi_push_thread_stack): New public function. Tells the
12 garbage collector about the current stack pointer of a suspended
15 2003-04-03 Martin Baulig <martin@ximian.com>
17 * timed-thread.h (TimedThread): Added `suspended_sem',
18 `suspend_count' and `stack_ptr'.
20 2003-03-28 Dick Porter <dick@ximian.com>
22 * atomic.h: PPC support gratiously donated to the public domain
23 by John Duncan <jddst19@mac.com>
25 2003-03-20 Dick Porter <dick@ximian.com>
27 * sockets.c (_wapi_connect): If connect() fails with EACCES, try
28 setting SO_BROADCAST and connecting again. Fixes bug 39178.
30 2003-03-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
32 * processes.c: included Jerome Laban's patch and call SetLastError when
33 the executable is not found.
35 2003-03-03 Dick Porter <dick@ximian.com>
37 * io.c (CreateFile): Try opening directories readonly, so that
38 timestamps can be adjusted. Patch by Elan Feingold
39 <efeingold@mn.rr.com>.
41 2003-02-25 Dick Porter <dick@ximian.com>
43 * shared.c (_wapi_shm_attach): Return a failure code on system
44 call errors, rather than exiting.
46 2003-02-21 Dick Porter <dick@ximian.com>
48 * processes.c (GetCurrentProcessId): Use the current process
49 handle to return the process ID, as getpid() is unreliable
50 (linuxthreads gives each thread a different pid). Fixes bug
53 2003-02-21 Dick Porter <dick@ximian.com>
55 * io.c (FindNextFile): Skip over dangling symlinks. Fixes bug
58 2003-02-11 Dick Porter <dick@ximian.com>
61 * timefuncs.c: Added GetTickCount()
63 2003-02-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
65 * error.c: added WSA_EHOSTUNREACH mapping.
67 2003-01-26 Miguel de Icaza <miguel@ximian.com>
69 * io.c (SetFileAttributes): This routine is not currently
70 implemented for the general case, but I added a special case to
71 set the executable bit on Linux.
73 Wed Jan 15 15:55:40 CET 2003 Paolo Molaro <lupus@ximian.com>
75 * sockets.h, daemon.c, io.c: compilation fixes on MacOSX.
77 2003-01-08 Dick Porter <dick@ximian.com>
79 * sockets.c: Fixed setting blocking mode to true (fixes bug 36388)
81 2002-12-11 Juli Mallett <jmallett@FreeBSD.org>
83 * daemon.c, handles-private.h, handles.c, wapi-private.h:
84 Check for an implementation which says it supports
85 _POSIX_THREAD_PROCESS_SHARED, rather than just one that
86 defines the symbol. Defined but with a value of -1 still
87 means that it is unsupported.
89 2002-12-08 Martin Baulig <martin@ximian.com>
91 * handles.c (_wapi_handle_new): Create new non-shared handles with
92 an initial refcount of 1, not 0.
94 2002-11-22 Dietmar Maurer <dietmar@ximian.com>
96 * threads.c (TlsGetValue): removed unnecessary mutex
98 2002-11-20 Dick Porter <dick@ximian.com>
100 * timed-thread.c (_wapi_timed_thread_attach): Attached threads
101 need to store their data structure too.
103 * threads.c: Make sure the threading data is initialised wherever
106 2002-11-15 Dick Porter <dick@ximian.com>
108 * timed-thread.c: Removed unneeded parameters in
109 _wapi_timed_thread_attach().
111 * threads.c: Renamed AttachThread() to make it not look like
112 external API. Removed unneeded parameters.
114 2002-11-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
116 * error.[ch]: added errno_to_WSA (). It displays a warning and return
117 WSASYSCALLFAILURE if there is no error mapping for the given errno,
119 * sockets.c: use errno_to_WSA and fixed display of warning for h_errno.
121 2002-10-31 Dick Porter <dick@ximian.com>
124 * io.c: Define and use INVALID_FILE_ATTRIBUTES
126 2002-10-07 Dick Porter <dick@ximian.com>
129 * daemon.c: Use a more accurate time source for process start and
132 2002-10-03 Dick Porter <dick@ximian.com>
136 * threads.c: Fixes for freebsd. Make sure that mutex and condition
137 creation and deletion happen in the process that owns them, when
138 POSIX shared thread objects aren't supported. This breaks on
139 freebsd, as pthread_t is a pointer to data.
141 2002-10-02 Dick Porter <dick@ximian.com>
143 * shared.c: Use mmap() instead of sysv shm for the shared data.
145 * wapi-private.h (_WAPI_HANDLE_VERSION): Reset back to 0, for the
149 * daemon.c: mmap()ed regions survive fork, so just pass the
150 pointer to _wapi_daemon_main instead of mapping it again.
152 2002-10-01 Dick Porter <dick@ximian.com>
154 * timed-thread.c: Kludge for CREATE_SUSPENDED thread creation.
155 Unfortunately libgc uses the same thread suspend technique that I
156 want to, and the two don't mix: libgc will deadlock when it tries
157 to stop the world if a thread has already been suspended by
158 someone else. Just do the simple suspended create rather than the
159 general purpose thread suspension for now.
161 * threads.c: Pass create flags to the timed_thread create call, to
162 implement suspended thread creation. ResumeThread() partially
163 implemented, to cope with the case where a newly created but
164 suspended thread is launched.
166 2002-09-30 Dick Porter <dick@ximian.com>
168 * sockets.c (ioctlsocket): Set non-blocking mode in a better way,
171 2002-09-27 Dick Porter <dick@ximian.com>
173 * semaphores.c: Only include semaphore.h if it's present. Patch
174 for BSD from jmmv@hispabsd.org (Julio Merino).
176 2002-09-27 Dick Porter <dick@ximian.com>
178 * processes.c: Pass environment and working directory to the
179 daemon when forking. Don't let argv[0] be duplicated when looking
180 for the program name. Implement EnumProcessModules (simple
181 version for now, lsof-style later if needed), GetModuleBaseName,
182 {Get,Set}ProcessWorkingSetSize (just faked, because the vm hints
183 aren't available on Linux).
185 * process-private.h: Store the process name, and the working set
189 * handles-private.h: New functions to store and retrieve an array
190 of strings in the scratch space
192 * daemon.c: Don't miss deleting some handles when a client exits
193 (we used to rely on the client doing the final cleanup, but
194 obviously if the client is no longer there the daemon has to do
197 Process forking now sets the environment and the working
200 * io.c: Don't confuse fd 0 with an unassigned handle struct
202 * atomic.h: Add a google cache alternative to the msdn URL
204 2002-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
207 (_wapi_recvfrom): added ECONNRESET to the switch.
209 2002-09-24 Mark Crichton <crichton@gimp.org>
211 * atomic.h: Yea. On linux, sparc isn't sparc, it's __sparc__.
214 2002-09-19 Mark Crichton <crichton@gimp.org>
216 * daemon.c, shared.c: Added NEED_LINK_UNLINK for systems that
217 dont have Linux's abstract filesystem for sockets.
219 2002-09-19 Mark Crichton <crichton@gimp.org>
221 * atomic.h: Added SPARC atomic asm code.
222 * daemon.c, handles-private.h, handles.c, wapi-private.h:
223 undefined _POSIX_THREAD_PROCESS_SHARED. This actually exists on
224 Solaris 9, however, the code paths don't seem to work. More testing
225 on the shared case is *really* needed.
227 2002-09-03 Dick Porter <dick@ximian.com>
230 * threads.c: Removed PosixKillThread(), because it's not in the
233 2002-08-20 Dick Porter <dick@ximian.com>
235 * handles.c (_wapi_handle_scratch_store): Made stored byte lengths
236 multiples of 4 bytes, to keep header structures aligned. Needed
237 for sparc, at least. (Patch from crichton@gimp.org)
239 * handles.c: Removed 'disable_shm' variable (we've defaulted to
240 building with shm enabled for months now)
242 2002-08-19 Dick Porter <dick@ximian.com>
244 * daemon.c: Rewrote the poll() loop to use GIOChannels instead,
245 for legacy NeXT-based systems.
247 2002-08-12 Dick Porter <dick@ximian.com>
249 * atomic.h: Rename some parameters to avoid c++ keywords (Patch
250 from Joseph Wenninger <kde@jowenn.at>)
252 2002-08-05 Dietmar Maurer <dietmar@ximian.com>
254 * threads.c: use fast spinlocks by default
256 2002-08-02 Dick Porter <dick@ximian.com>
258 * io.c (GetStdHandle): Add a handle reference when returning a
259 duplicate console handle. This fixes the unref_handle errors in
262 2002-08-01 Dietmar Maurer <dietmar@ximian.com>
264 * threads.c (TLS_PTHREAD_MUTEX): define this because else some
267 2002-08-01 Dick Porter <dick@ximian.com>
269 * threads.c: Use atomic spinlocks in TLS functions
272 * Makefile.am: Added mono-spinlock.h
274 2002-07-21 Jeffrey Stedfast <fejj@ximian.com>
276 * daemon-messages.c: #include <sys/types.h> and <sys/sockets.h> -
277 these are needed for sendmsg() and also for struct msghdr (at
278 least on Solaris). Solaris still won't build because struct msghdr
279 doesn't have msg_flags, msg_control, or msg_controllen members.
280 (CMSG_SPACE): Define for systems that don't have it.
283 2002-07-20 Dick Porter <dick@ximian.com>
289 * handles.c: Implemented pipe handles
292 * daemon.c: Fixed bug in handle closing.
295 * daemon.c: Forked processes now close all open file descriptors.
297 Fri Jul 19 19:05:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
299 * sockets.h, io-layer.h, critical-sections.h: don't include config.h
302 2002-07-19 Martin Baulig <martin@gnome.org>
304 * threads.c (ExitThread): Call exit() if no threads has been
307 2002-07-17 Dick Porter <dick@ximian.com>
309 * daemon-messages.c: Freebsd fixes from Andreas Kohn
310 <andreas.kohn@gmx.net>
312 2002-07-15 Dick Porter <dick@ximian.com>
314 * io.c: Removed bogus console_flush() method, that was just cut
315 and pasted from file_flush when I separated the two handle types.
317 2002-07-12 Dick Porter <dick@ximian.com>
319 * io.c (convert_from_flags): Fixed misunderstanding wrt fcntl
320 flags. Fixes bug 27633.
322 2002-07-12 Dick Porter <dick@ximian.com>
326 * daemon.c: Use size of sockaddr_un.sun_path from config.h
328 2002-07-12 Dick Porter <dick@ximian.com>
330 * processes.c (CreateProcess): Send stdin, stdout and stderr
331 handles if the startup info doesnt specify new ones
333 * io.c (GetStdHandle): Return the same handle when the same
334 standard handle is requested
336 * handles.c: Pass file descriptors when forking
338 * daemon.c: Use supplied file descriptors when forking a new
342 * daemon-messages.c: Pass stdin, stdout and stderr file
343 descriptors to the daemon (used when forking)
345 2002-07-11 Miguel de Icaza <miguel@ximian.com>
347 * daemon.c (_wapi_daemon_main): Use sizeof
348 (main_socket_address.sun_path) instead of hardcoded 108 value.
350 * handles.c (shared_init): Use sizeof
351 (shared_socket_address.sun_path) instead of hardcoded 108 value.
353 2002-07-10 Dennis Haney <davh@davh.dk>
357 * daemon.c: Lots of documentation, some added error checking, and
358 code readability improvements.
360 * daemon-messages.h: Add the Error request type to improve error
363 * daemon-messages.c: Do a bit more error checking on send() and
364 recv(), and log errors with a higher severity level.
366 2002-07-04 Dick Porter <dick@ximian.com>
368 * daemon.c (process_process_fork): Fix argument handling, due to
369 buggy understanding of g_strsplit() behaviour.
371 2002-07-03 Dick Porter <dick@ximian.com>
374 * threads.c: Implement OpenThread(). Define access-control values
380 * Makefile.am: Added access.h, to hold shared access-control
383 2002-07-02 Dick Porter <dick@ximian.com>
385 * wapi-private.h (_WAPI_HANDLE_VERSION): New protocol version
387 2002-07-02 Dick Porter <dick@ximian.com>
389 * handles.c (shared_init): Make a second attempt to contact the
390 daemon if the shared memory attach succeeds, but the connect()
391 fails. (This copes with the daemon crashing without cleaning up
397 * shared.c (_wapi_shm_attach): Don't exec() anything when we fork
398 the daemon, it's now built into the library.
400 2002-06-25 Dick Porter <dick@ximian.com>
405 * daemon.c: Process forking and handle data management
409 * processes.c: Process forking and other support functions
411 2002-06-25 Dick Porter <dick@ximian.com>
413 * versioninfo.h: PE resource decoding
415 * unicode.c (_wapi_unicode_to_utf8): g_utf16_to_utf8 doesnt need
416 to be told the string length
418 * io.c: Removed the ACTUALLY_DO_UNICODE option. Fixed some leaks.
419 Moved _wapi_time_t_to_filetime and the WapiFileTime typedef to
422 2002-06-12 Dick Porter <dick@ximian.com>
425 * daemon-messages.c: Handle SIGPIPE in a non-stupid way in the
426 daemon, if MSG_NOSIGNAL isn't available. Thanks to Jaroslaw
427 Kowalski <jarek@atm.com.pl> for pointing out the bogosity.
429 2002-06-10 Jaroslaw Kowalski <jarek@atm.com.pl>
431 * sockets.c, daemon-messages.c: Prevent SIGPIPE from being raised
432 when writing to a closed socket.
434 2002-06-08 Jeffrey Stedfast <fejj@ximian.com>
436 * mono-mutex.c (mono_once): New convenience function for my
441 * critical-sections.c:
449 * atomic.c: Use mono_once() rather than pthread_once().
451 2002-06-06 Jeffrey Stedfast <fejj@ximian.com>
453 * handles.c (_wapi_handle_new): pthread_once() is not atomic, so
454 if multiple threads all try to call _wapi_handle_new() before the
455 shared data has been initialized, it is possible that we could get
456 into a condition where shared_init() is being executed and later
457 threads will pass by pthread_once() due to the fact that it has
458 already been called and so therefor will attempt to use the shared
459 data before it has been completely initialized. If we instead use
460 a standard mutex locking mechanism around shared_init(), we can
461 avoid the situation entirely. By wrapping the mutex locking in a
462 check to see if we've already initialized the data, we can even
463 avoid wasting resources by having to lock/unlock the mutex in any
464 later calls (the only time we'd have to worry about
465 locking/unlocking is the initial race to call shared_init() at
468 Sat Jun 1 13:27:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
470 * atomic.h: inline asm fixes from Dennis Haney (davh@davh.dk).
472 Fri May 31 16:21:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
474 * daemon.c, handles.c: rename "sun" local var since it's apparently
475 a #define on Solaris.
477 Fri May 31 15:40:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
479 * daemon-messages.c: work-around MSG_NOSIGNAL missing on some
482 2002-05-15 Dick Porter <dick@ximian.com>
484 * wait.c: Fix a deadlock in WaitForMultipleObjects
486 2002-05-14 Dick Porter <dick@ximian.com>
488 * io.c: Fix a cut&paste error, found by
489 Jaroslaw Kowalski <jarek@atm.com.pl>
491 2002-05-10 Dan Lewis <dihlewis@yahoo.co.uk>
495 2002-05-09 Dick Porter <dick@ximian.com>
503 * Makefile.am: Remove now-unused file wait-private.h
505 2002-05-08 Dick Porter <dick@ximian.com>
507 * shared.c: Better error messages, and report when daemon
508 connection fails rather than blocking forever. Do some more
509 shared memory sanity checking.
511 * handles.c: Better error messages when connecting to shared
512 memory and the handle daemon. Fall back to non-shared handles if
513 an error occurs. Set the default back to 'shared handles'. Fix a
514 crashing bug in scratch space allocation that mangled the block
517 2002-05-07 Miguel de Icaza <miguel@ximian.com>
519 * handles.c (shared_init): Disable SHM for now, people have too
520 many problems with this, and the diagnostics are not helping.
522 2002-05-06 Dan Lewis <dihlewis@yahoo.co.uk>
524 * io.c: CreateFile sets win32 last error.
526 2002-05-05 Dick Porter <dick@ximian.com>
537 * semaphore-private.h:
541 * event-private.h: Simplify the WapiHandleOps struct: take out all
542 the file-specific entries, leaving just the items that operate on
543 handles themselves. Split the close operation into shared and
544 private parts: shared close is called by the daemon.
546 * handles.c: As above, but also pass handle allocation, ref and
547 unref operations to the daemon. Populate the handle_ops array at
548 compile time, because the daemon needs to call ops on handles too.
549 Don't bother to track open handle counts any more, the daemon does
553 * thread-private.h: As above, but also make the thread data
556 * shared.c: Fork a handle daemon if the calling process created
557 the shared memory segment.
562 * Makefile.am: Build a daemon to manage handle allocation and
563 destruction without needing to lock the shared memory
565 2002-04-30 Jeffrey Stedfast <fejj@ximian.com>
567 * atomic.c: Changed to use a normal mutex rather than a spinlock
568 since a lot of platforms seem to not have them :\
570 2002-04-30 Dick Porter <dick@ximian.com>
572 * Completely rewrote the handle waiting code: removed the helper
573 thread and its attendant complexity. All handle waiting is now
574 abstracted into the WaitForSingleObject() and
575 WaitForMultipleObjects() functions.
577 * Implemented inter-process sharing of handles using sysv shared
578 memory. This makes handles even more opaque, with a handle now
579 just an index into an array.
581 2002-04-25 Dan Lewis <dihlewis@yahoo.co.uk>
583 * io.c: unitialized pointer in GetCurrentDirectory.
585 Sat Apr 20 13:37:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
587 * threads.c: destroy the mutex at thread destruction
588 (if/when thread destruction code will be actually called).
589 When protecting a tls data pointer from the gc, use also the
590 thread id in the key.
592 Wed Apr 17 18:36:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
594 * timed-thread.c: avoid race condition when setting the thread to
597 2002-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
599 * jit.h: to more #include lines to avoid breaking compilation
600 under windows when upgrading mingw and w32api to version
603 2002-04-16 Dick Porter <dick@ximian.com>
605 * atomic.h: Explanatory comment about lack of 80386 support
607 2002-04-15 Dick Porter <dick@ximian.com>
609 * atomic.h: use xaddl for InterlockedIncrement() and
610 InterlockedDecrement(). Use cmpxchgl in a loop for
611 InterlockedExchange() and InterlockedExchangePointer().
613 Mon Apr 15 13:31:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
615 * unicode.c: fix unicode_len() to not access uninitialized memory
616 (and updated to conform to mono code style).
618 Fri Mar 29 17:15:11 CET 2002 Paolo Molaro <lupus@ximian.com>
620 * io.c: EEXISTS is ignored for directory creation.
621 * mono-mutex.h: remove silly "pragma }" that emacs users insert
622 because they use a broken editor:-)
624 2002-03-28 Dick Porter <dick@ximian.com>
630 * handles.c: Warning cleanups
632 2002-03-27 Dan Lewis <dihlewis@yahoo.co.uk>
634 * unicode.h, unicode.c: changed to gunichar2
635 * io.h, io.c: changed strings to gunichar2*, added
636 SetFileAttributes(), GetCurrentDirectory(), SetCurrentDirectory(),
637 some fixes to FindFirstFile() and friends.
639 2002-03-26 Dick Porter <dick@ximian.com>
641 * types.h: Implement the large integer struct
644 * timefuncs.c: Dummy functions that don't yet implement
645 QueryPerformanceCounter() and QueryPerformanceFrequency()
648 * threads.c: Implement SleepEx()
651 * system.c: Beginnings of GetSystemInfo()
653 * mono-mutex.c (pthread_mutex_timedlock): Fix a ms/ns conversion
657 * context.c: Dummy function that doesnt yet implement
661 * atomic.c: Interlocked functions
663 Mon Mar 25 13:01:40 CET 2002 Paolo Molaro <lupus@ximian.com>
665 * threads.c: use a gc-safe hash table to store tls pointers.
667 2002-03-22 Dick Porter <dick@ximian.com>
669 * threads.c: Fix a race condition where a thread can start and
670 exit before the handle has been properly initialised (no reason
671 why the handle couldn't be initialised beforehand, so do so)
673 Fix a ms to ns conversion magnitude thinko.
675 2002-03-21 Dick Porter <dick@ximian.com>
677 * semaphores.c: Fix a problem when waiting for one or more
678 semaphores, and another semaphore is Released (all waiting
679 semaphores assumed they were signalled)
681 2002-03-29 Dan Lewis <dihlewis@yahoo.co.uk>
683 * io.h, io.c, uglify.h: added MoveFile, CopyFile, CreateDirectory,
684 RemoveDirectory, GetFileAttributes, GetFileAttributesEx
686 2002-03-19 Dietmar Maurer <dietmar@ximian.com>
688 * threads.c (Sleep): bug fix: 1ms == 1000000ns
690 2002-03-19 Dan Lewis <dihlewis@yahoo.co.uk>
692 * io.h, io.c, events.c, mutexes.c, semaphores.c, sockets.c,
693 threads.c, io.c: added flush method to handles.
695 * io.c: FlushFileBuffers() and FindFirstFile() functions.
697 Thu Mar 7 17:21:52 CET 2002 Paolo Molaro <lupus@ximian.com>
699 * threads.c, timed-thread.c, wait.c: Boehm-GC anable.
701 2002-02-20 Dick Porter <dick@ximian.com>
703 * io-layer.h: Always build without cygwin support on windows
705 Mon Feb 18 15:50:59 CET 2002 Paolo Molaro <lupus@ximian.com>
707 * sockets.c: #undef DEBUG.
709 2002-02-14 Jeffrey Stedfast <fejj@ximian.com>
711 * io-layer.h: conditionally include sys/filio.h and sys/sockio.h
712 for FIONBIO, FIONREAD, and SIOCATMARK.
714 2002-02-14 Jeffrey Stedfast <fejj@ximian.com>
716 * sockets.c: conditionally include sys/filio.h and sys/sockio.h
717 for FIONBIO, FIONREAD, and SIOCATMARK.
719 2002-02-13 Dick Porter <dick@ximian.com>
721 * sockets.c: Implement shutdown and select
723 2002-02-13 Jeffrey Stedfast <fejj@ximian.com>
725 * mono-mutex.[c,h]: New source files that thinly wrap all pthread
726 functions that take pthread_mutex_t and/or pthread_mutexattr_t
727 arguments for the sake of portability. Implements recursive
728 mutexes and pthread_mutex_timedlock.
730 * critical-sections.c:
737 * wait.c: Use the mono-mutex wrapper portability functions/macros.
739 * pthread-compat.[c,h]: Replaced by mono-mutex.[c,h]
741 2002-01-23 Dick Porter <dick@ximian.com>
743 * sockets.c: Networking support, mostly wrapping BSD socket APIs
744 with handle code, and translating errno into w32 error codes.
746 * macros.h: Some w32 macros used with the socket support
748 * error.c: Implemented GetLastError() and SetLastError()
750 * Makefile.am: Added sockets, with kludge to override some symbols
752 2001-12-17 Dietmar Maurer <dietmar@ximian.com>
754 * unicode.c (_wapi_unicode_to_utf8): byteswap UTF16 strings before
755 passing them to iconv
756 (_wapi_unicode_to_utf8): only swap bytes on LE systems, remove bug
757 from previous commit.
759 2001-12-11 Dick Porter <dick@ximian.com>
761 * io.c: Implement DeleteFile(), GetFileTime(), SetFileTime() and
762 FileTimeToSystemTime().
764 * unicode.c (unicode_len): Nasty way of finding length of unicode
765 string with embedded NULLs (counts until two NULLs together).
767 * mutexes.c (mutex_close):
768 * events.c (event_close): Release the internal pthreads resources
770 2001-11-26 Dick Porter <dick@ximian.com>
772 * critical-sections.c:
780 * wait.c: turn off DEBUG messages
782 2001-11-22 Dick Porter <dick@ximian.com>
784 * handles.c (SignalObjectAndWait): Implement
786 * wait.c (WaitForSingleObject): Fix case where timeout == 0
792 * events.c: Support for SignalObjectAndWait
794 2001-11-21 Dick Porter <dick@ximian.com>
801 * wait.c: Reliable method of returning which handle was signalled
802 on return from WaitForMultipleObjects().
804 2001-11-21 Dick Porter <dick@ximian.com>
806 * events.c: Implement events
808 2001-11-15 Dick Porter <dick@ximian.com>
810 * mutexes.c: Implement mutexes
814 * misc.c: Factor out some common code
816 2001-11-13 Dick Porter <dick@ximian.com>
818 * threads.c: Implement TLS. Implement GetCurrentThreadId(), and
819 GetCurrentThread() by maintaining a hash of thread handles.
821 * threads.h: Define thread and process creation flags
823 2001-11-12 Dick Porter <dick@ximian.com>
825 * critical-sections.c: Implement critical sections
827 2001-11-12 Dick Porter <dick@ximian.com>
829 * semaphores.c: Implement semaphores
831 * wait.c (wait_for_item): Maintain a wait count rather than count
834 * threads.c (thread_wait_multiple): Don't lock the wait item, that
835 will block other wait threads
837 2001-11-11 Dick Porter <dick@ximian.com>
839 * Makefile.am: Rename some automake variables
840 (from Nick Drochak <ndrochak@gol.com>)
842 2001-11-10 Dick Porter <dick@ximian.com>
844 * Makefile.am (libwapiincludedir): Fix include destination
846 * .cvsignore: Ignore generated files
848 2001-11-10 Dietmar Maurer <dietmar@ximian.com>
850 * pthread-compat.c: added some include files to make it compile on
853 2001-11-08 Dick Porter <dick@ximian.com>
857 This is a library emulating the win32 threading and IO API.