On Monday 20 February 2012 3:09:08 pm Ted Unangst wrote: > On Mon, Feb 20, 2012, Kurt Miller wrote: > > On Sunday 19 February 2012 4:33:35 pm Amit Kulkarni wrote: > > >> There is some problem building sun's jdk 1.6 (devel/jdk/1.6) and > >> lang/mono. Note this is with stock current (src,xenocara,ports) as of > >> friday feb 17... CC'ing kurt@ and robert@. Can somebody look in there > >> if they have time? > > What is the problem?
guenther@ mentioned to me that pthread_suspend_np() suspends the whole process not just the specified thread. Is that not the case? > > > Thanks for the report. rthreads doesn't have functional > > pthread_suspend_np() support yet, so ports using it will not work. That > > covers most garbage collection based applications like the jdk and mono. > > When pthread_suspend_np() is functional we can try these applications again. > > If the problem is just that the main thread can't be suspended, that's > been fixed for ages I think. We just need to fix the library. > > Index: rthread_sched.c > =================================================================== > RCS file: /home/tedu/cvs/src/lib/librthread/rthread_sched.c,v > retrieving revision 1.10 > diff -u -p -r1.10 rthread_sched.c > --- rthread_sched.c 19 Feb 2012 02:07:48 -0000 1.10 > +++ rthread_sched.c 20 Feb 2012 20:06:15 -0000 > @@ -136,13 +136,8 @@ pthread_suspend_np(pthread_t thread) > > if (thread == pthread_self()) > return (EDEADLK); > - /* > - * XXX Avoid a bug in current signal handling by refusing to > - * suspend the main thread. > - */ > - if (thread != &_initial_thread) > - if (kill(thread->tid, SIGSTOP) == -1) > - errn = errno; > + if (kill(thread->tid, SIGSTOP) == -1) > + errn = errno; > return (errn); > } > > >