Index: /trunk/psLib/src/astro/psTime.c
===================================================================
--- /trunk/psLib/src/astro/psTime.c	(revision 10121)
+++ /trunk/psLib/src/astro/psTime.c	(revision 10122)
@@ -10,6 +10,6 @@
  *  @author Ross Harman, MHPCC
  *
- *  @version $Revision: 1.105 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2006-11-20 05:22:15 $
+ *  @version $Revision: 1.106 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-11-21 19:23:02 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -1774,83 +1774,4 @@
 }
 
-static psHash *timers = NULL;
-static char timerName[256] = "\0";
-
-static void psTimerFree ()
-{
-    p_psTimeFinalize();
-    psFree(timers);
-    timers = NULL;
-    timerName[0] = '\0';
-
-    return;
-}
-
-// start/restart a named timer
-bool psTimerStart (char *name)
-{
-
-    psTime *start;
-
-    if (timers == NULL) {
-        timers = psHashAlloc (16);
-        //        psMemSetDeallocator(timers, (psFreeFunc)psTimerFree);
-    }
-    strncpy(timerName, name, 256);
-    // XXX EAM : TAI timer makes more sense (monotonically increasing seconds)
-    start = psTimeGetNow (PS_TIME_TAI);
-    psHashAdd (timers, name, start);
-    psFree (start);
-    return (true);
-}
-
-psF64 psTimerClear (char *name)
-{
-    psF64 timerTime = 0.0;
-    bool status;
-
-    if (name == NULL)
-        return false;
-    timerTime = psTimerMark(name);
-    status = psHashRemove (timers, name);
-    strncpy(timerName, "\0", 256);
-    if ( !status )
-        return 0.0;
-    else
-        return timerTime;
-}
-
-// get current elapsed time on named timer
-psF64 psTimerMark (char *name)
-{
-
-    psTime *start;
-    psTime *mark;
-    psF64   delta;
-
-    if (timers == NULL)
-        return (0);
-    start = (psTime*)psHashLookup (timers, name);
-    if (start == NULL)
-        return (0);
-    mark = psTimeGetNow (PS_TIME_TAI);
-    delta = psTimeDelta (mark, start);
-    psFree (mark);
-    // psFree (start); -- XXX is psHashLookup not psMemCopying?
-
-    return (delta);
-}
-
-psF64 psTimerStop(void)
-{
-    psF64 timerTime = 0.0;
-
-    if ( strncmp(timerName, "\0", 256) )
-        timerTime = psTimerMark(timerName);
-    strncpy(timerName, "\0", 2);
-    psTimerFree();
-    return timerTime;
-}
-
 void psTimeInitialize(const char *timeConfig)
 {
@@ -1879,3 +1800,65 @@
 }
 
-
+// XXX EAM : I've changed the timers to report TAI
+// this makes more sense because it has monotonically increasing seconds
+// would be even better if we could get a TAI value without doing a big lookup...
+
+static psHash *timers = NULL;
+
+// free all timers
+static void psTimerFree ()
+{
+    p_psTimeFinalize();
+    psFree(timers);
+    timers = NULL;
+    return;
+}
+
+// start/restart a named timer
+bool psTimerStart (char *name)
+{
+    if (name == NULL)
+        return false;
+    if (timers == NULL) {
+        timers = psHashAlloc (16);
+    }
+    psTime *start = psTimeGetNow (PS_TIME_TAI);
+    psHashAdd (timers, name, start);
+    psFree (start);
+    return true;
+}
+
+// clear the timer, return elapsed time to date, or NAN if not previously defined
+psF64 psTimerClear (char *name)
+{
+    if (name == NULL)
+        return NAN;
+    psF64 delta = psTimerMark(name);
+
+    psTime *start = psTimeGetNow (PS_TIME_TAI);
+    psHashAdd (timers, name, start);
+    psFree (start);
+    return delta;
+}
+
+// get current elapsed time on named timer (NAN if not defined)
+psF64 psTimerMark (char *name)
+{
+    if (timers == NULL)
+        return (NAN);
+    psTime *start = psHashLookup (timers, name);
+    if (start == NULL)
+        return (NAN);
+
+    psTime *mark = psTimeGetNow (PS_TIME_TAI);
+    psF64  delta = psTimeDelta (mark, start);
+    psFree (mark);
+    return delta;
+}
+
+bool psTimerStop(void)
+{
+    psTimerFree();
+    return true;
+}
+
Index: /trunk/psLib/src/astro/psTime.h
===================================================================
--- /trunk/psLib/src/astro/psTime.h	(revision 10121)
+++ /trunk/psLib/src/astro/psTime.h	(revision 10122)
@@ -11,6 +11,6 @@
  *  @author Ross Harman, MHPCC
  *
- *  @version $Revision: 1.52 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2006-11-20 17:49:56 $
+ *  @version $Revision: 1.53 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-11-21 19:23:02 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -467,5 +467,5 @@
  *  @return psF64:      The maximum time expended.
  */
-psF64 psTimerStop(void);
+bool psTimerStop(void);
 
 /** Copy a psTime.
