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