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);
>  }
>  
> 
> 


Reply via email to