I think APH may be correct. The last time I read the JNI specification, I don't recall seeing restrictions on a JNI call including either blocking indefinitely or never returning. A JVM that cannot handle this behavior would seem to be broken. The fact that changing the ATW implementation works around the breakage does not change the fact that it is broken. A better solution might be to hook all system calls that can block. David Daney. Ian Rogers wrote: > Currently, to the best of my knowledge, classpath's gtk peer code isn't > working with any JVM with M-to-N threading. The problem with > gdk_threads_enter is that it will block if it can't enter the threaded > code. If, for example, you are mapping the gtk threads to 1 native > thread then all the threads will quickly block waiting to enter > gdk_threads_enter. The solution to this is for the gtk peer code not to > block or to fix the portable native sync code - both require changes to > classpath and there are reasons not to use portable native syncing. > Whilst switching to the classpath 1-to-1 thread mapping is a desirable > change to the JVM it requires a substantial amout of work with no > developer currently working on it. A compromise could be to supply/apply > a patch when building classpath with this JVM, but I thought the issues > raised were of a more generic nature - they'd effect other JVMs that > implemented M-to-N threading. > > Thanks, > > Ian Rogers > > Andrew Haley wrote: > >> Ian Rogers writes: >> > Thanks for the replies. I have worked further on this and the >> particular > issue isn't with GC barriers but with M-to-N threading. >> >> It's possible that I'm completely missing the point here, but cannot >> we simply conclude from this that M-to-N threading in this JVM is >> broken? >> >> Andrew. >> > > >