ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/gvpe/src/iom.C
(Generate patch)

Comparing gvpe/src/iom.C (file contents):
Revision 1.32 by pcg, Tue Apr 26 00:55:56 2005 UTC vs.
Revision 1.33 by pcg, Wed Jan 11 21:27:05 2006 UTC

135 135
136 tw0.start (TSTAMP_MAX); 136 tw0.start (TSTAMP_MAX);
137#endif 137#endif
138 } 138 }
139 139
140 ~init ()
141 {
142 iom_valid = false;
143 }
144
140 static void required (); 145 static void required ();
141} init; 146} init;
142 147
143void 148void
144init::required () 149init::required ()
214 write (sigpipe[1], &ch, 1); 219 write (sigpipe[1], &ch, 1);
215} 220}
216 221
217void io_manager::reg (sig_watcher &w) 222void io_manager::reg (sig_watcher &w)
218{ 223{
224 init::required ();
225
219 assert (0 < w.signum); 226 assert (0 < w.signum);
220 227
221 sw.reserve (w.signum); 228 sw.reserve (w.signum);
222 229
223 while (sw.size () < w.signum) // pathetic 230 while (sw.size () < w.signum) // pathetic
248 io_manager::reg (w, *sv); 255 io_manager::reg (w, *sv);
249} 256}
250 257
251void io_manager::unreg (sig_watcher &w) 258void io_manager::unreg (sig_watcher &w)
252{ 259{
253 if (!w.active) 260 if (!w.active || !iom_valid)
254 return; 261 return;
255 262
256 assert (0 < w.signum && w.signum <= sw.size ()); 263 assert (0 < w.signum && w.signum <= sw.size ());
257 264
258 io_manager::unreg (w, *sw[w.signum - 1]); 265 io_manager::unreg (w, *sw[w.signum - 1]);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines