base: Clean up signal handling
authorAndreas Sandberg <andreas@sandberg.pp.se>
Fri, 29 Nov 2013 13:35:36 +0000 (14:35 +0100)
committerAndreas Sandberg <andreas@sandberg.pp.se>
Fri, 29 Nov 2013 13:35:36 +0000 (14:35 +0100)
commit9c57d5b5a66df60f77d1209f6660e4986da4bf8e
treeb081dd2ebd6bccb433701f9ae62c5defd1314881
parent2823982a3cbd60a1b21db1a73b78440468df158a
base: Clean up signal handling

The PollEvent class dynamically installs a SIGIO and SIGALRM handler
when a file handler is registered. Most signal handlers currently get
registered in the initSignals() function. This changeset moves the
SIGIO/SIGALRM handlers to initSignals() to live with the other signal
handlers. The original code installs SIGIO and SIGALRM with the
SA_RESTART option to prevent syscalls from returning EINTR. This
changeset consistently uses this flag for all signal handlers to
ensure that other signals that trigger asynchronous behavior (e.g.,
statistics dumping) do not cause undesirable EINTR returns.
src/base/pollevent.cc
src/base/pollevent.hh
src/sim/init.cc