cvs commit: src/lib/libthread_xu Makefile src/lib/libthread_xu/arch src/lib/libthread_xu/arch/alpha src/lib/libthread_xu/arch/alpha/alpha pthread_md.c src/lib/libthread_xu/arch/alpha/include pthread_md.h src/lib/libthread_xu/arch/amd64 ...

Matthew Dillon dillon at
Wed Feb 2 10:36:06 PST 2005

:This is fine to me, did you consider how to exit whole process not
:just a single thread ? right now, I am using _exit(), but it only
:exits current thread, other threads can not be shutdown.

    The problem with using _exit() to exit all threads is that there
    is no way to notify the other threads of the event, and there are
    cases where we might want that feature.  I think what we want here
    is a signal rather then a system call.

    Since we are already going to create a distinction in the signal handling
    between vectored and shared signals, there is no reason why we couldn't
    also create the concept of a 'broadcast' signal, that all threads get.
    SIGKILL, SIGSTOP, SIGTSTP, SIGCONT... these would all be broadcast
    signals by default.

    We would implement it via sigaction().  We would add a SA_BROADCAST
    flag to handle broadcast signals, and we would also add a SA_VECTORED
    flag to differentiate between shared signals and targeted signals.

					Matthew Dillon 
					<dillon at xxxxxxxxxxxxx>

More information about the Commits mailing list