… | |
… | |
219 | write (sigpipe[1], &ch, 1); |
219 | write (sigpipe[1], &ch, 1); |
220 | } |
220 | } |
221 | |
221 | |
222 | void io_manager::reg (sig_watcher &w) |
222 | void io_manager::reg (sig_watcher &w) |
223 | { |
223 | { |
|
|
224 | init::required (); |
|
|
225 | |
224 | assert (0 < w.signum); |
226 | assert (0 < w.signum); |
225 | |
227 | |
226 | sw.reserve (w.signum); |
228 | sw.reserve (w.signum); |
227 | |
229 | |
228 | while (sw.size () < w.signum) // pathetic |
230 | while (sw.size () < w.signum) // pathetic |
… | |
… | |
253 | io_manager::reg (w, *sv); |
255 | io_manager::reg (w, *sv); |
254 | } |
256 | } |
255 | |
257 | |
256 | void io_manager::unreg (sig_watcher &w) |
258 | void io_manager::unreg (sig_watcher &w) |
257 | { |
259 | { |
258 | if (!w.active) |
260 | if (!w.active || !iom_valid) |
259 | return; |
261 | return; |
260 | |
262 | |
261 | assert (0 < w.signum && w.signum <= sw.size ()); |
263 | assert (0 < w.signum && w.signum <= sw.size ()); |
262 | |
264 | |
263 | io_manager::unreg (w, *sw[w.signum - 1]); |
265 | io_manager::unreg (w, *sw[w.signum - 1]); |