2002-04-30 Dick Porter <dick@ximian.com>
authorDick Porter <dick@acm.org>
Tue, 30 Apr 2002 12:17:27 +0000 (12:17 -0000)
committerDick Porter <dick@acm.org>
Tue, 30 Apr 2002 12:17:27 +0000 (12:17 -0000)
commit94ddc5e3cc192bffd6cc23cf8f638408f1c31b22
tree0dca548be483f642715c95cde39ad01d9d4abb42
parent0916c59d8ffbef30d39c6608e96d2fea0784bb0c
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-30  Dick Porter  <dick@ximian.com>

* socket-io.c: Cope with SOCKET being an integer rather than a
pointer now.

* threads.c: Added Thread_free_internal, to deal with thread
handle cleanup.  Moved calls to handle_store() and handle_remove()
to start_wrapper(), so each can only be called once.  Allocate
synchronisation blocks with GC_malloc(), and use GC finalisation
to close the handles.

* icall.c: added System.Threading.Thread::Thread_free_internal

2002-04-30  Dick Porter  <dick@ximian.com>

* acconfig.h:
* configure.in: Added option to disable using shared memory for
handles

2002-04-30  Dick Porter  <dick@ximian.com>

* shmdel.c:
* scratch.c:
* hps.c:
* Makefile.am: Some tools to help debug shared memory handles:
'hps' shows handle status, 'scratch' displays info about scratch
data (such as handle names), 'shmdel' deletes the shared memory
segment.

2002-04-30  Dick Porter  <dick@ximian.com>

* interp.c: Tell glib to not abort when g_log() etc print
recursively

2002-04-30  Dick Porter  <dick@ximian.com>

* mono.c (main): Tell glib to not abort when g_log() etc print
recursively

svn path=/trunk/mono/; revision=4166
61 files changed:
ChangeLog
acconfig.h
configure.in
mono/Makefile.am
mono/handles/.cvsignore [new file with mode: 0644]
mono/handles/ChangeLog [new file with mode: 0644]
mono/handles/Makefile.am [new file with mode: 0644]
mono/handles/hps.c [new file with mode: 0644]
mono/handles/scratch.c [new file with mode: 0644]
mono/handles/shmdel.c [new file with mode: 0644]
mono/interpreter/ChangeLog
mono/interpreter/interp.c
mono/io-layer/ChangeLog
mono/io-layer/Makefile.am
mono/io-layer/context.c
mono/io-layer/context.h
mono/io-layer/event-private.h [new file with mode: 0644]
mono/io-layer/events.c
mono/io-layer/events.h
mono/io-layer/handles-private.h
mono/io-layer/handles.c
mono/io-layer/handles.h
mono/io-layer/io-private.h [new file with mode: 0644]
mono/io-layer/io.c
mono/io-layer/io.h
mono/io-layer/mutex-private.h [new file with mode: 0644]
mono/io-layer/mutexes.c
mono/io-layer/mutexes.h
mono/io-layer/process-private.h [new file with mode: 0644]
mono/io-layer/processes.c [new file with mode: 0644]
mono/io-layer/processes.h [new file with mode: 0644]
mono/io-layer/semaphore-private.h [new file with mode: 0644]
mono/io-layer/semaphores.c
mono/io-layer/semaphores.h
mono/io-layer/shared.c [new file with mode: 0644]
mono/io-layer/shared.h [new file with mode: 0644]
mono/io-layer/socket-private.h [new file with mode: 0644]
mono/io-layer/sockets.c
mono/io-layer/sockets.h
mono/io-layer/thread-private.h [new file with mode: 0644]
mono/io-layer/threads.c
mono/io-layer/threads.h
mono/io-layer/timed-thread.c
mono/io-layer/timed-thread.h
mono/io-layer/uglify.h
mono/io-layer/wait-private.h
mono/io-layer/wait.c
mono/io-layer/wait.h
mono/io-layer/wapi-private.h
mono/io-layer/wapi.h
mono/jit/ChangeLog
mono/jit/mono.c
mono/metadata/ChangeLog
mono/metadata/icall.c
mono/metadata/socket-io.c
mono/metadata/socket-io.h
mono/metadata/threads.c
mono/metadata/threads.h
mono/tests/dataslot.cs [new file with mode: 0755]
mono/tests/lock.cs [new file with mode: 0755]
mono/tests/thread-signal-wait.cs [new file with mode: 0755]