From 16ec1041b8b5c8fd36296363398688b440f60222 Mon Sep 17 00:00:00 2001 From: pcg Date: Sat, 17 Jan 2004 14:10:40 +0000 Subject: [PATCH] *** empty log message *** --- src/iom.C | 35 +++++++++++++++++++---------------- src/iom.h | 2 +- 2 files changed, 20 insertions(+), 17 deletions(-) diff --git a/src/iom.C b/src/iom.C index e4d86989..36097f35 100644 --- a/src/iom.C +++ b/src/iom.C @@ -29,6 +29,24 @@ // TSTAMP_MAX must still fit into a positive struct timeval #define TSTAMP_MAX (double)(1UL<<31) +// this is a dummy time watcher to ensure that the first +// time watcher is _always_ valid, this gets rid of a lot +// of null-pointer-checks +// (must come _before_ iom is being defined) +static struct tw0 : time_watcher { + void cb (time_watcher &w) + { + // should never get called + // reached end-of-time, or tstamp has a bogus definition, + // or compiler initilization order broken, or somethine else :) + abort (); + } + + tw0() + : time_watcher (this, &tw0::cb) + { } +} tw0; + tstamp NOW; static bool iom_valid; io_manager iom; @@ -224,22 +242,6 @@ void io_manager::loop () } } -// this is a dummy time watcher to ensure that the first -// time watcher is _always_ valid, this gets rid of a lot -// of null-pointer-checks -static struct tw0 : time_watcher { - void cb (time_watcher &w) - { - // should never get called - // reached end-of-time, or tstamp has a bogus definition :) - abort (); - } - - tw0() - : time_watcher (this, &tw0::cb) - { } -} tw0; - io_manager::io_manager () { iom_valid = true; @@ -248,6 +250,7 @@ io_manager::io_manager () set_now (); tw0.start (TSTAMP_MAX); + printf ("abort, %f but inly on %f\n", NOW, tw0.at); #endif } diff --git a/src/iom.h b/src/iom.h index d2efc489..f5fecb6b 100644 --- a/src/iom.h +++ b/src/iom.h @@ -158,7 +158,7 @@ struct time_watcher : watcher, callback1 { template time_watcher (O1 *object, void (O2::*method)(time_watcher &)) - : callback1(object,method) + : callback1(object,method), at(0) { } ~time_watcher () { stop (); } }; -- 2.34.1