summaryrefslogtreecommitdiff
path: root/indra/newview/llpanelgrouproles.cpp
diff options
context:
space:
mode:
authorNat Goodspeed <nat@lindenlab.com>2011-12-22 16:20:19 -0500
committerNat Goodspeed <nat@lindenlab.com>2011-12-22 16:20:19 -0500
commit39c3efbda3bc4c7b415aa851ec4f42f05acda0cb (patch)
treeef7c7828d7539748e635ca0cca3f319fb9113044 /indra/newview/llpanelgrouproles.cpp
parent25ef0cd2236aeb2d0047881e11a0022c4355cd48 (diff)
Add child_status_callback() function and arrange to call periodically.
At least on OS X 10.7, a call to apr_proc_wait(APR_NOWAIT) in fact seems to block the caller. So instead of polling apr_proc_wait(), use APR callback mechanism (apr_proc_other_child_register() et al.) and poll that using apr_proc_other_child_refresh_all(). Evidently this polls the underlying system waitpid(), but the internal call seems to better support nonblocking. On arrival in the child_status_callback(APR_OC_REASON_DEATH) call, though, apr_proc_wait() produces ECHILD: the child process in question has already been reaped. The OS-encoded wait() status does get passed to the callback, but then we have to use OS-dependent macros to tease apart voluntary termination vs. killed by signal... a bit of a hole in APR's abstraction layer. Wrap ensure_equals() calls with a macro to explain which comparison failed.
Diffstat (limited to 'indra/newview/llpanelgrouproles.cpp')
0 files changed, 0 insertions, 0 deletions