Po waitpid() _nekdy_ mam $? == -1

Jan Kasprzak kas na fi.muni.cz
Pátek Říjen 2 09:51:00 CEST 2009


Honza Pazdziora wrote:
: Man perlvar rika:
: 
: 	If you have installed a signal handler for "SIGCHLD",
: 	the value of $? will usually be wrong outside that handler.
: 
: Neni to Tvuj pripad?

	No, tohle jsem si vykladal jakoze se na hodnotu $? nemuzu
nadale spolehat kdyz opustim SIGCHLD handler, ale prece kdyz volam
waitpid bez WNOHANG, tak by ten handler vubec nemel prijit ke slovu, ne?

	Navic teda pokud si predstavim jak je to implementovane,
tak nekde uvnitr se musi volat waitpid(2), ktere primo vraci jak
PID, tak to co se dostane do $?. Nedovedu si predstavit proc
by se mi melo vratit korektni PID a ne $?. Prece pokud by mezitim
prisel SIGCHLD, tak by jak PID, tak $? mel ziskat ten waitpid()
volany ze SIGCHLD handleru a v hlavnim kodu bych mel dostat
-EINTR nebo neco takoveho.

	?


-Y.

-- 
| Jan "Yenya" Kasprzak  <kas at {fi.muni.cz - work | yenya.net - private}> |
| GPG: ID 1024/D3498839      Fingerprint 0D99A7FB206605D7 8B35FCDE05B18A5E |
| http://www.fi.muni.cz/~kas/    Journal: http://www.fi.muni.cz/~kas/blog/ |
Please don't top post and in particular don't attach entire digests to your
mail or we'll all soon be using bittorrent to read the list.     --Alan Cox


Další informace o konferenci Perl