PATCH: Threads and SIGINT
Thu Dec 23 11:35:00 GMT 1999
Bryce> Here's a new patch for threads and SIGINT handling. This is a
Bryce> somewhat refined version of the threads patch that I have
Bryce> previously posted.
I read this.
Parts of it are ok: fixing the interrupted/isInterrupted semantics
(this part is better than ok: it is required), the Boehm GC changes,
the bug fix in Thread.join.
Parts I like less. I don't like that the LINUX_THREADS define is used
outside the posix-threads code. I think this imlementation detail
should be kept entirely private to the posix threads code.
There has to be some other way to do this. For instance, on non-Linux
POSIX systems, we could record the condition variable when
_Jv_CondWait is entered, and have _Jv_ThreadInterrupt notify this
condition variable. Wouldn't that work? What do you think of this?
Bryce> In order to fix this I think we need to force the use of
Bryce> default, non-recursive mutexes on Solaris. I think this could
Bryce> be done with something like "#if defined (SOLARIS &&
Bryce> HAVE_PTHREAD_MUTEX_SETTYPE) #undef HAVE_PTHREAD_MUTEX_SETTYPE"
Bryce> at the top of posix-threads.h, but perhaps there is a better
I'd rather not use platform defines like "SOLARIS". I realize we do
that for Linux, but that was a mistake. Instead we could have a
define that would be used to disable HAVE_RECURSIVE_MUTEX, and define
this define in configure.in when using Solaris.
I agree we should try to get this in soon. Lately I've come to have a
full appreciation for how much it sucks to have patches languish.
More information about the Java-patches