Re: Slow pthread_create() under high load

From: yodaiken@fsmlabs.com
Date: Tue Mar 28 2000 - 14:12:38 EST


On Tue, Mar 28, 2000 at 08:27:30PM +0200, Robert de Vries wrote:
> On Tue, 28 Mar 2000, Stephen C. Tweedie wrote:
> > > sort of signal to all tasks in the group.
> >
> > You can do that anyway, in user space. Much cleaner.
>
> Sure you can, but the trick is to send one (1) signal to a group of tasks.
> Not n times the same signal to n tasks. IMHO, the POSIX semantics of

So the nonmanager threads do
          sigaction(n,s)
              === save local copy of s,n,thread_id
                  real_sigaction(realprocessid(myid));
                  if unblocked a signal that is user_space pending
                     kill self with that signal

Now the information about who blocks what is available in user space

          kill(gettpid(),n) where gettpid has been fixed to get the
                             root pid
                             === find someone who is not blocking and
                                  kill(someone,n)
                                  if all threads block, then mark signal
                                  as pending

-- 
---------------------------------------------------------
Victor Yodaiken 
FSMLabs:  www.fsmlabs.com  www.rtlinux.com
FSMLabs is a servicemark and a service of 
VJY Associates L.L.C, New Mexico.

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Fri Mar 31 2000 - 21:00:22 EST