+2004-06-03 Lluis Sanchez Gual <lluis@ximian.com>
+
+ * threads.c: Implemented SleepEx.
+ * threads.h: Fixed SleepEx signature.
+
+2004-06-03 Miguel de Icaza <miguel@ximian.com>
+
+ * threads.c: When running under valgrind, do not allocate too much
+ stack, as Valgrind default is 1 meg.
+
+2004-05-27 Dick Porter <dick@ximian.com>
+
+ * io.h:
+ * io.c: Implemented LockFile() and UnlockFile()
+
+2004-05-21 Dick Porter <dick@ximian.com>
+
+ * io.c (CreateFile): Check for existing share modes when opening
+ a file.
+
+ * handles.c:
+ * handles-private.h:
+ * daemon-messages.h:
+ * daemon.c: Maintain a hash of file share modes, keying on device
+ and inode (to cope with symlinks.)
+
+2004-05-20 Lluis Sanchez Gual <lluis@ximian.com>
+
+ * daemon-messages.c: Retry if the communication with the daemon is
+ interrupted by a signal.
+ * io.c, sockets.c: Check for EINTR in every syscall that can be interrumped.
+ Only return an error in this case if there is something in the apc queue
+ (which means that it is an interruption requested by the "user").
+ * processes.c: Use WaitForSingleObjectEx. No need to pass "alertable" as
+ true since the wait is small.
+ * shared.c: Retry write calls when interrumped by a signal.
+ * timed-thread.h, timed-thread.c: added _wapi_thread_apc_pending, which
+ returns TRUE if there are pending asynchronous calls (APC) for the
+ provided thread. Also added _wapi_thread_dispatch_apc_queue which calls
+ the enqueued APCs. Defined a new struct ApcInfo that holds information
+ about an enqueued APC.
+ * thread-private.h, threads.c: Implemented QueueUserAPC (which does the same
+ as in win32),_wapi_thread_apc_pending and _wapi_thread_dispatch_apc_queue.
+ These last two methods call the corresponding apc methods in
+ thread-private using the provided thread handle.
+ * threads.h: Added QueueUserAPC.
+ * uglify.h: Added WapiApcProc (needed by QueueUserAPC).
+ * wait.c, wait.h: Changed WaitForSingleObject to WaitForSingleObjectEx, and
+ WaitForMultipleObjects to WaitForMultipleObjectsEx. Implemented support
+ for APCs in those two methods and also in SleepEx.
+
+2004-05-17 Dick Porter <dick@ximian.com>
+
+ * io.c (CopyFile): Speed up. Fixes bug 57859.
+
+2004-05-13 Dick Porter <dick@ximian.com>
+ * mono-mutex.c (mono_mutex_unlock): Return EPERM when the current
+ thread doesn't own the mutex, rather than assert()ing.
+
+2004-05-11 Dick Porter <dick@ximian.com>
+
+ * shared.c (_wapi_shm_attach): Cope when a previous daemon startup
+ attempt failed, leaving shared files that look like a daemon is
+ still starting.
+
+2004-05-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+ * io.c:
+ (SetFileAttributes): don't the the exec bit if the corresponding read
+ bit is not set.
+
+2004-05-10 Zoltan Varga <vargaz@freemail.hu>
+
+ * io.c (FindFirstFile): Fix invalid free.
+
+2004-05-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+ * io.c: translate from GFileError to errno codes and don't free
+ variables right after calling mono_io_scandir, as we may overwrite
+ errno value.
+
+2004-05-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+ * io.c: g_dir_open return ENOENT for directories on which we don't have
+ read/execute permission, while returning EPERM for anything below those.
+ So, change ENOENT by EPERM if the directory exists.
+
+2004-05-07 Dick Porter <dick@ximian.com>
+
+ * io.c (SetFileAttributes): Don't have failed chmod()s cause a
+ "file not found" error. Fixes bug 54032.
+
+2004-05-07 Dick Porter <dick@ximian.com>
+
+ * io.c (FindFirstFile): Comment out a windows-compatibility check
+ that breaks when directories have metachars in their names.
+ Workaround for bug 58116.
+
+2004-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+ * io.c: fixed for FindFirstFile for empty directories. Closes
+ bug #58147.
+
+2004-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+ * processes.c: set the start time for the current process. Fixes bug
+ #58109.
+
+2004-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+ * io-private.h: 'namelist' is now a gchar ** in _WapiHandlePrivate_find.
+ * io.c: implemented scandir using glib functions.
+
+2004-05-04 Dick Porter <dick@ximian.com>
+
+ * daemon.c (read_message): Return FALSE on error so the GSource
+ callback itself can return FALSE. Cures the infinite loop poll()
+ warning on MacosX.
+ * shared.c: Fix some daemon startup race conditions.
+
+2004-04-29 Miguel de Icaza <miguel@ximian.com>
+
+ * io.c (CopyFile): Use 32k buffers to copy the file instead of 2k,
+ use the stack, do not use dynamic memory.
+
+2004-04-29 Zoltan Varga <vargaz@freemail.hu>
+
+ * io.c: Add scandir implementation for platforms which do not have
+ it, like solaris.
+
+2004-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+ * io.[ch]: implemented GetLogicalDriveStrings.
+
+2004-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+ * io.c:
+ * sockets.c: use the field name from configure when accessing sigval
+ pointer field. Makes this work on the Mac.
+
+2004-04-28 Bernie Solomon <bernard@ugsolutions.com>
+
+ * atomic.c: (InterlockedExchange) fix typo for
+ mutex name
+
+2004-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+ * io.c:
+ * sockets.c: added check for sys/aio.h.
+
+2004-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+ * error.[ch]: added _wapi_get_win32_file_error...
+ * io.c: ... which was _wapi_get_win32_error here.
+ * sockets.c: rename the function calls here too.
+
+2004-04-28 Dick Porter <dick@ximian.com>
+
+ * daemon-messages.c: Avoid a deadlock when a thread is killed while
+ waiting for the daemon by using a recursive mutex. Helps bug 56699.
+
+2004-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+ * io.c: fixed leak in async_notifier().
+
+ * sockets.[ch]: added AIO support for sockets and fixed WSAIoctl
+ declaration.
+
+ * threads.c: removed old comment.
+
+2004-04-26 David Waite <mass@akuma.org>
+
+ * daemon-messages.h:
+ * daemon-private.h
+ * error.h:
+ * io.h:
+ * processes.h:
+ * shared.h:
+ * thread-private.h:
+ * wapi-private.h: remove comma from end of enumeration declarations
+ * status.h: cast unsigned int types to int for enum assignment
+
+2004-04-26 David Waite <mass@akuma.org>
+
+ * io.c:
+ * timefuncs.c: declare 64-bit constants as long long types (i.e.
+ 10ULL)
+
+2004-04-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+ * socket-wrappers.h: _wapi_socket == WSASocket now. Added
+ WSA_FLAG_OVERLAPPED.
+
+ * sockets.c: new unused parameters for _wapi_socket.
+
+2004-04-22 Miguel de Icaza <miguel@ximian.com>
+
+ * timed-thread.c: Replace sem_init with MONO_SEM_INIT to handle
+ the fact that MacOS X is a piece of junk (sem_init is *defined* in
+ the libc, but they return `not implemented').
+
+2004-04-22 Dick Porter <dick@ximian.com>
+
+ * handles.c:
+ * handles-private.h: Reference the handle when it is locked, so
+ that another thread can't blow it away while we're waiting for it
+ to become signalled.
+
+ * wait.c:
+ * timed-thread.c:
+ * threads.c:
+ * sockets.c:
+ * semaphores.c:
+ * mutexes.c:
+ * mono-mutex.c:
+ * io.c:
+ * handles.c:
+ * handles-private.h:
+ * events.c:
+ * error.c:
+ * daemon-messages.c:
+ * critical-sections.c:
+ * atomic.c: Added pthreads cleanup handlers and error asserts
+
+ * shared.c:
+ * handles.c: Fixed the gcc "variable might be used uninitialised"
+ warnings. They can't happen, but gcc doesn't know that
+ g_assert()s don't return.
+
+ Fixed the declaration of _wapi_handle_process_kill() so that it
+ expects the correct type for the pid.
+
+ * threads.c: Removed the TLS_PTHREAD_MUTEX style locking that
+ hasn't been used in ages and just made the code more complex.
+
+2004-04-17 Zoltan Varga <vargaz@freemail.hu>
+
+ * processes.c: Include <signal.h> for SIGKILL and SIGILL + fix some
+ warnings. Fixes #57168.
+
+2004-04-16 Dick Porter <dick@ximian.com>
+
+ * threads.c (Sleep): Using div(3) with a negative (when signed)
+ numerator causes the quotient to be 0 and the remainder to be the
+ numerator. This feeds a small negative value to nanosleep(3),
+ which will return immediately and cause a busy wait. Fixes bug
+ 56351.
+
+2004-04-15 Dick Porter <dick@ximian.com>
+
+ * io-private.h:
+ * io.c: Rewrite FindFirstFile and FindNextFile using scandir(3)
+ and fnmatch(3) instead of glob(3). glob() can't cope with being
+ given filenames containing metachars. This fixes bug 40557.
+
+2004-04-14 Bernie Solomon <bernard@ugsolutions.com>
+
+ * security.c: #warning is a GCC-ism
+
+2004-04-13 Sebastien Pouliot <sebastien@ximian.com>
+
+ * security.c: Removed GetUserName as glib g_get_user_name does a
+ better (portability) job. Added ImpersonateLoggedOnUser and
+ RevertToSelf.
+
+2004-04-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+ * mono-mutex.h: move pthread_mutex_timedlock declaration to...
+ * mono-mutex.c: ...here. It was causing a warning that prevented
+ libgdiplus compilation.
+
+2004-04-04 Miguel de Icaza <miguel@ximian.com>
+
+ * security.c (GetUserName): Make it work on MacOS X
+
+2004-04-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+ * security.c: use getpwuid_r if available. This one is thread-safe.
+
+2004-04-02 Sebastien Pouliot <sebastien@ximian.com>
+
+ * Makefile.am: Added security.c|h.
+ * security.c: New file for security related functions. Added function
+ GetUserName to fix #56144.
+ * security.h: New. Header file for security.c
+ * wapi.h: Added include for security.h
+
+2004-03-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+ * daemon-messages.h: added kill structs.
+
+ * daemon.c: implemented process_process_kill.
+ * handles-private.h: define process_process_kill.
+ * handles.c: implemented _wapi_handle_process_kill.
+ * processes.[ch]: implemented TerminateProcess.
+
2004-03-25 Bernie Solomon <bernard@ugsolutions.com>
* daemon.c (rem_fd): On solaris you seem to get an