+2002-08-01 Dick Porter <dick@ximian.com>
+
+ * threads.c: Use atomic spinlocks in TLS functions
+
+ * mono-spinlock.h:
+ * Makefile.am: Added mono-spinlock.h
+
+2002-07-21 Jeffrey Stedfast <fejj@ximian.com>
+
+ * daemon-messages.c: #include <sys/types.h> and <sys/sockets.h> -
+ these are needed for sendmsg() and also for struct msghdr (at
+ least on Solaris). Solaris still won't build because struct msghdr
+ doesn't have msg_flags, msg_control, or msg_controllen members.
+ (CMSG_SPACE): Define for systems that don't have it.
+ (CMSG_LEN): Same.
+
+2002-07-20 Dick Porter <dick@ximian.com>
+
+ * wapi-private.h:
+ * io-private.h:
+ * io.h:
+ * io.c:
+ * handles.c: Implemented pipe handles
+
+ * handles.c:
+ * daemon.c: Fixed bug in handle closing.
+
+ * shared.c:
+ * daemon.c: Forked processes now close all open file descriptors.
+
+Fri Jul 19 19:05:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
+
+ * sockets.h, io-layer.h, critical-sections.h: don't include config.h
+ in header files.
+
+2002-07-19 Martin Baulig <martin@gnome.org>
+
+ * threads.c (ExitThread): Call exit() if no threads has been
+ created yet.
+
+2002-07-17 Dick Porter <dick@ximian.com>
+
+ * daemon-messages.c: Freebsd fixes from Andreas Kohn
+ <andreas.kohn@gmx.net>
+
+2002-07-15 Dick Porter <dick@ximian.com>
+
+ * io.c: Removed bogus console_flush() method, that was just cut
+ and pasted from file_flush when I separated the two handle types.
+
+2002-07-12 Dick Porter <dick@ximian.com>
+
+ * io.c (convert_from_flags): Fixed misunderstanding wrt fcntl
+ flags. Fixes bug 27633.
+
+2002-07-12 Dick Porter <dick@ximian.com>
+
+ * wapi-private.h:
+ * handles.c:
+ * daemon.c: Use size of sockaddr_un.sun_path from config.h
+
+2002-07-12 Dick Porter <dick@ximian.com>
+
+ * processes.c (CreateProcess): Send stdin, stdout and stderr
+ handles if the startup info doesnt specify new ones
+
+ * io.c (GetStdHandle): Return the same handle when the same
+ standard handle is requested
+
+ * handles.c: Pass file descriptors when forking
+
+ * daemon.c: Use supplied file descriptors when forking a new
+ process
+
+ * daemon-messages.h:
+ * daemon-messages.c: Pass stdin, stdout and stderr file
+ descriptors to the daemon (used when forking)
+
+2002-07-11 Miguel de Icaza <miguel@ximian.com>
+
+ * daemon.c (_wapi_daemon_main): Use sizeof
+ (main_socket_address.sun_path) instead of hardcoded 108 value.
+
+ * handles.c (shared_init): Use sizeof
+ (shared_socket_address.sun_path) instead of hardcoded 108 value.
+
+2002-07-10 Dennis Haney <davh@davh.dk>
+
+ * shared.c:
+ * handles.c:
+ * daemon.c: Lots of documentation, some added error checking, and
+ code readability improvements.
+
+ * daemon-messages.h: Add the Error request type to improve error
+ checking.
+
+ * daemon-messages.c: Do a bit more error checking on send() and
+ recv(), and log errors with a higher severity level.
+
+2002-07-04 Dick Porter <dick@ximian.com>
+
+ * daemon.c (process_process_fork): Fix argument handling, due to
+ buggy understanding of g_strsplit() behaviour.
+
+2002-07-03 Dick Porter <dick@ximian.com>
+
+ * threads.h:
+ * threads.c: Implement OpenThread(). Define access-control values
+ for thread handles.
+
+ * wapi.h:
+ * processes.h:
+ * access.h:
+ * Makefile.am: Added access.h, to hold shared access-control
+ definitions
+
+2002-07-02 Dick Porter <dick@ximian.com>
+
+ * wapi-private.h (_WAPI_HANDLE_VERSION): New protocol version
+
+2002-07-02 Dick Porter <dick@ximian.com>
+
+ * handles.c (shared_init): Make a second attempt to contact the
+ daemon if the shared memory attach succeeds, but the connect()
+ fails. (This copes with the daemon crashing without cleaning up
+ the shared memory.)
+
+ * Makefile.am:
+ * daemon-private.h:
+ * daemon.c:
+ * shared.c (_wapi_shm_attach): Don't exec() anything when we fork
+ the daemon, it's now built into the library.
+
+2002-06-25 Dick Porter <dick@ximian.com>
+
+ * handles.c:
+ * handles-private.h:
+ * daemon-messages.h:
+ * daemon.c: Process forking and handle data management
+
+ * processes.h:
+ * process-private.h:
+ * processes.c: Process forking and other support functions
+
+2002-06-25 Dick Porter <dick@ximian.com>
+
+ * versioninfo.h: PE resource decoding
+
+ * unicode.c (_wapi_unicode_to_utf8): g_utf16_to_utf8 doesnt need
+ to be told the string length
+
+ * io.c: Removed the ACTUALLY_DO_UNICODE option. Fixed some leaks.
+ Moved _wapi_time_t_to_filetime and the WapiFileTime typedef to
+ timefuncs.c
+
+2002-06-12 Dick Porter <dick@ximian.com>
+
+ * daemon.c:
+ * daemon-messages.c: Handle SIGPIPE in a non-stupid way in the
+ daemon, if MSG_NOSIGNAL isn't available. Thanks to Jaroslaw
+ Kowalski <jarek@atm.com.pl> for pointing out the bogosity.
+
+2002-06-10 Jaroslaw Kowalski <jarek@atm.com.pl>
+
+ * sockets.c, daemon-messages.c: Prevent SIGPIPE from being raised
+ when writing to a closed socket.
+
+2002-06-08 Jeffrey Stedfast <fejj@ximian.com>
+
+ * mono-mutex.c (mono_once): New convenience function for my
+ previous fix.
+
+ * handles.c:
+ * error.c:
+ * critical-sections.c:
+ * threads.c:
+ * sockets.c:
+ * semaphores.c:
+ * processes.c:
+ * mutexes.c:
+ * io.c:
+ * events.c:
+ * atomic.c: Use mono_once() rather than pthread_once().
+
+2002-06-06 Jeffrey Stedfast <fejj@ximian.com>
+
+ * handles.c (_wapi_handle_new): pthread_once() is not atomic, so
+ if multiple threads all try to call _wapi_handle_new() before the
+ shared data has been initialized, it is possible that we could get
+ into a condition where shared_init() is being executed and later
+ threads will pass by pthread_once() due to the fact that it has
+ already been called and so therefor will attempt to use the shared
+ data before it has been completely initialized. If we instead use
+ a standard mutex locking mechanism around shared_init(), we can
+ avoid the situation entirely. By wrapping the mutex locking in a
+ check to see if we've already initialized the data, we can even
+ avoid wasting resources by having to lock/unlock the mutex in any
+ later calls (the only time we'd have to worry about
+ locking/unlocking is the initial race to call shared_init() at
+ startup).
+
+Sat Jun 1 13:27:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
+
+ * atomic.h: inline asm fixes from Dennis Haney (davh@davh.dk).
+
+Fri May 31 16:21:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
+
+ * daemon.c, handles.c: rename "sun" local var since it's apparently
+ a #define on Solaris.
+
+Fri May 31 15:40:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
+
+ * daemon-messages.c: work-around MSG_NOSIGNAL missing on some
+ platforms.
+
+2002-05-15 Dick Porter <dick@ximian.com>
+
+ * wait.c: Fix a deadlock in WaitForMultipleObjects
+
+2002-05-14 Dick Porter <dick@ximian.com>
+
+ * io.c: Fix a cut&paste error, found by
+ Jaroslaw Kowalski <jarek@atm.com.pl>
+
+2002-05-10 Dan Lewis <dihlewis@yahoo.co.uk>
+
+ * io.c: Nasty typo.
+
+2002-05-09 Dick Porter <dick@ximian.com>
+
+ * threads.c:
+ * semaphores.c:
+ * processes.c:
+ * mutexes.c:
+ * handles-private.h:
+ * events.c:
+ * Makefile.am: Remove now-unused file wait-private.h
+
+2002-05-08 Dick Porter <dick@ximian.com>
+
+ * shared.c: Better error messages, and report when daemon
+ connection fails rather than blocking forever. Do some more
+ shared memory sanity checking.
+
+ * handles.c: Better error messages when connecting to shared
+ memory and the handle daemon. Fall back to non-shared handles if
+ an error occurs. Set the default back to 'shared handles'. Fix a
+ crashing bug in scratch space allocation that mangled the block
+ headers.
+
+2002-05-07 Miguel de Icaza <miguel@ximian.com>
+
+ * handles.c (shared_init): Disable SHM for now, people have too
+ many problems with this, and the diagnostics are not helping.
+
+2002-05-06 Dan Lewis <dihlewis@yahoo.co.uk>
+
+ * io.c: CreateFile sets win32 last error.
+
+2002-05-05 Dick Porter <dick@ximian.com>
+
+ * wapi-private.h:
+ * handles-private.h:
+ * io.c:
+ * io-private.h:
+ * mutexes.c:
+ * mutex-private.h:
+ * processes.c:
+ * process-private.h:
+ * semaphores.c:
+ * semaphore-private.h:
+ * sockets.c:
+ * socket-private.h:
+ * events.c:
+ * event-private.h: Simplify the WapiHandleOps struct: take out all
+ the file-specific entries, leaving just the items that operate on
+ handles themselves. Split the close operation into shared and
+ private parts: shared close is called by the daemon.
+
+ * handles.c: As above, but also pass handle allocation, ref and
+ unref operations to the daemon. Populate the handle_ops array at
+ compile time, because the daemon needs to call ops on handles too.
+ Don't bother to track open handle counts any more, the daemon does
+ that.
+
+ * threads.c:
+ * thread-private.h: As above, but also make the thread data
+ handle-private.
+
+ * shared.c: Fork a handle daemon if the calling process created
+ the shared memory segment.
+
+ * daemon.c:
+ * daemon-messages.c:
+ * daemon-messages.h:
+ * Makefile.am: Build a daemon to manage handle allocation and
+ destruction without needing to lock the shared memory
+
+2002-04-30 Jeffrey Stedfast <fejj@ximian.com>
+
+ * atomic.c: Changed to use a normal mutex rather than a spinlock
+ since a lot of platforms seem to not have them :\
+
+2002-04-30 Dick Porter <dick@ximian.com>
+
+ * Completely rewrote the handle waiting code: removed the helper
+ thread and its attendant complexity. All handle waiting is now
+ abstracted into the WaitForSingleObject() and
+ WaitForMultipleObjects() functions.
+
+ * Implemented inter-process sharing of handles using sysv shared
+ memory. This makes handles even more opaque, with a handle now
+ just an index into an array.
+
+2002-04-25 Dan Lewis <dihlewis@yahoo.co.uk>
+
+ * io.c: unitialized pointer in GetCurrentDirectory.
+
+Sat Apr 20 13:37:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
+
+ * threads.c: destroy the mutex at thread destruction
+ (if/when thread destruction code will be actually called).
+ When protecting a tls data pointer from the gc, use also the
+ thread id in the key.
+
+Wed Apr 17 18:36:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
+
+ * timed-thread.c: avoid race condition when setting the thread to
+ detached.
+
+2002-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+ * jit.h: to more #include lines to avoid breaking compilation
+ under windows when upgrading mingw and w32api to version
+ 1.3 (thanks Dick!).
+
+2002-04-16 Dick Porter <dick@ximian.com>
+
+ * atomic.h: Explanatory comment about lack of 80386 support
+
2002-04-15 Dick Porter <dick@ximian.com>
* atomic.h: use xaddl for InterlockedIncrement() and