Thread and Signal

Jan Kasprzak kas na informatics.muni.cz
Pondělí Říjen 11 16:11:02 CEST 1999


Martin Saturka wrote:
: Ahoj,
: Program ma vic vlaken a v kazdym vlaknu se odchytava 1 stejny
: signal. Chapu spatne, ze kdyz se v jednom vlakne chyti signal
: (a tudiz nastavi chytani na SIG_DFL), tak nez v tom vlakne zase 
: nastavim chytani, tak v jinem vlakne se vyskytnuvsi dany signal 
: udela paseku?
: (mam pocit, ze se v tom asi lisi POSIX a Linux threads, ano?)

	Zalezi na tom, co je to za signal - nektere jsou generovany
pro thread (SIGSEGV), a nektere pro proces (treba ty, zasilane pomoci
kill(2)). Kazdy thread ma moznost (pomoci pthread_sigmask(2), coz je
obdoba sigprocmask(2)) rict, ktere signaly nechce dostavat. Signal je
pak dorucen jednomu z threadu, ktere ten signal neblokuji (citat ze
Single UNIX Spec, sigaction(2)):

: Signals generated for the process will be delivered to exactly
: one of those threads within the process which is in a call
: to a sigwait() function selecting that signal or has not blocked
: delivery of the signal.

	Co vam brani nastavit si dany signalovy handler
jako permanentni (!SA_RESETHAND)?

	Kde je tady odlisnost od POSIXu (nebo SUS)?

-Yenya

-- 
\ Jan "Yenya" Kasprzak <kas at fi.muni.cz>       http://www.fi.muni.cz/~kas/
\\ PGP: finger kas at aisa.fi.muni.cz   0D99A7FB206605D7 8B35FCDE05B18A5E //
\\\             Czech Linux Homepage:  http://www.linux.cz/              ///
///    While Linux is larger than Emacs, at least Linux has the excuse   \\\
//     that it needs to be.                           --Linus Torvalds    \\


Další informace o konferenci Linux