X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fio-layer%2FChangeLog;h=251289fc20cb7f127a1d3387161e68baad10a659;hb=1d4958553c0b50d4786a8556372177f51d22dd56;hp=abd04488cd3a43e8d80081a4101654f574c30bf5;hpb=543604f8f9366c8272fe0a82d518d1dee1077ca1;p=mono.git diff --git a/mono/io-layer/ChangeLog b/mono/io-layer/ChangeLog index abd04488cd3..251289fc20c 100644 --- a/mono/io-layer/ChangeLog +++ b/mono/io-layer/ChangeLog @@ -1,3 +1,426 @@ +2002-08-01 Dick Porter + + * threads.c: Use atomic spinlocks in TLS functions + + * mono-spinlock.h: + * Makefile.am: Added mono-spinlock.h + +2002-07-21 Jeffrey Stedfast + + * daemon-messages.c: #include and - + 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 + + * 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 + + * sockets.h, io-layer.h, critical-sections.h: don't include config.h + in header files. + +2002-07-19 Martin Baulig + + * threads.c (ExitThread): Call exit() if no threads has been + created yet. + +2002-07-17 Dick Porter + + * daemon-messages.c: Freebsd fixes from Andreas Kohn + + +2002-07-15 Dick Porter + + * 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 + + * io.c (convert_from_flags): Fixed misunderstanding wrt fcntl + flags. Fixes bug 27633. + +2002-07-12 Dick Porter + + * wapi-private.h: + * handles.c: + * daemon.c: Use size of sockaddr_un.sun_path from config.h + +2002-07-12 Dick Porter + + * 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 + + * 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 + + * 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 + + * daemon.c (process_process_fork): Fix argument handling, due to + buggy understanding of g_strsplit() behaviour. + +2002-07-03 Dick Porter + + * 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 + + * wapi-private.h (_WAPI_HANDLE_VERSION): New protocol version + +2002-07-02 Dick Porter + + * 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 + + * 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 + + * 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 + + * 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 for pointing out the bogosity. + +2002-06-10 Jaroslaw Kowalski + + * sockets.c, daemon-messages.c: Prevent SIGPIPE from being raised + when writing to a closed socket. + +2002-06-08 Jeffrey Stedfast + + * 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 + + * 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 + + * atomic.h: inline asm fixes from Dennis Haney (davh@davh.dk). + +Fri May 31 16:21:54 CEST 2002 Paolo Molaro + + * 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 + + * daemon-messages.c: work-around MSG_NOSIGNAL missing on some + platforms. + +2002-05-15 Dick Porter + + * wait.c: Fix a deadlock in WaitForMultipleObjects + +2002-05-14 Dick Porter + + * io.c: Fix a cut&paste error, found by + Jaroslaw Kowalski + +2002-05-10 Dan Lewis + + * io.c: Nasty typo. + +2002-05-09 Dick Porter + + * 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 + + * 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 + + * 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 + + * io.c: CreateFile sets win32 last error. + +2002-05-05 Dick Porter + + * 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 + + * 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 + + * 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 + + * io.c: unitialized pointer in GetCurrentDirectory. + +Sat Apr 20 13:37:39 CEST 2002 Paolo Molaro + + * 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 + + * timed-thread.c: avoid race condition when setting the thread to + detached. + +2002-04-16 Gonzalo Paniagua Javier + + * 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 + + * atomic.h: Explanatory comment about lack of 80386 support + +2002-04-15 Dick Porter + + * atomic.h: use xaddl for InterlockedIncrement() and + InterlockedDecrement(). Use cmpxchgl in a loop for + InterlockedExchange() and InterlockedExchangePointer(). + +Mon Apr 15 13:31:22 CEST 2002 Paolo Molaro + + * unicode.c: fix unicode_len() to not access uninitialized memory + (and updated to conform to mono code style). + +Fri Mar 29 17:15:11 CET 2002 Paolo Molaro + + * io.c: EEXISTS is ignored for directory creation. + * mono-mutex.h: remove silly "pragma }" that emacs users insert + because they use a broken editor:-) + +2002-03-28 Dick Porter + + * sockets.h: + * sockets.c: + * io.c: + * handles.h: + * handles.c: Warning cleanups + +2002-03-27 Dan Lewis + + * unicode.h, unicode.c: changed to gunichar2 + * io.h, io.c: changed strings to gunichar2*, added + SetFileAttributes(), GetCurrentDirectory(), SetCurrentDirectory(), + some fixes to FindFirstFile() and friends. + +2002-03-26 Dick Porter + + * types.h: Implement the large integer struct + + * timefuncs.h: + * timefuncs.c: Dummy functions that don't yet implement + QueryPerformanceCounter() and QueryPerformanceFrequency() + + * threads.h: + * threads.c: Implement SleepEx() + + * system.h: + * system.c: Beginnings of GetSystemInfo() + + * mono-mutex.c (pthread_mutex_timedlock): Fix a ms/ns conversion + thinko + + * context.h: + * context.c: Dummy function that doesnt yet implement + GetThreadContext() + + * atomic.h: + * atomic.c: Interlocked functions + +Mon Mar 25 13:01:40 CET 2002 Paolo Molaro + + * threads.c: use a gc-safe hash table to store tls pointers. + +2002-03-22 Dick Porter + + * threads.c: Fix a race condition where a thread can start and + exit before the handle has been properly initialised (no reason + why the handle couldn't be initialised beforehand, so do so) + + Fix a ms to ns conversion magnitude thinko. + +2002-03-21 Dick Porter + + * semaphores.c: Fix a problem when waiting for one or more + semaphores, and another semaphore is Released (all waiting + semaphores assumed they were signalled) + +2002-03-29 Dan Lewis + + * io.h, io.c, uglify.h: added MoveFile, CopyFile, CreateDirectory, + RemoveDirectory, GetFileAttributes, GetFileAttributesEx + +2002-03-19 Dietmar Maurer + + * threads.c (Sleep): bug fix: 1ms == 1000000ns + 2002-03-19 Dan Lewis * io.h, io.c, events.c, mutexes.c, semaphores.c, sockets.c,