Changeset 5083 for trunk/psLib/src/astro/psTime.c
- Timestamp:
- Sep 20, 2005, 4:11:16 PM (21 years ago)
- File:
-
- 1 edited
-
trunk/psLib/src/astro/psTime.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/astro/psTime.c
r5015 r5083 10 10 * @author Ross Harman, MHPCC 11 11 * 12 * @version $Revision: 1.7 0$ $Name: not supported by cvs2svn $13 * @date $Date: 2005-09- 13 01:09:58$12 * @version $Revision: 1.71 $ $Name: not supported by cvs2svn $ 13 * @date $Date: 2005-09-21 02:11:16 $ 14 14 * 15 15 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 1611 1611 } 1612 1612 1613 static psHash *timers = NULL; 1614 static char timerName[256] = "\0"; 1615 1616 static void psTimerFree () 1617 { 1618 1619 psFree (timers); 1620 p_psTimeFinalize(); 1621 return; 1622 } 1623 1624 // start/restart a named timer 1625 bool psTimerStart (char *name) 1626 { 1627 1628 psTime *start; 1629 1630 if (timers == NULL) { 1631 timers = psHashAlloc (16); 1632 // psMemSetDeallocator(timers, (psFreeFunc)psTimerFree); 1633 } 1634 strncpy(timerName, name, 256); 1635 start = psTimeGetNow (PS_TIME_UTC); 1636 psHashAdd (timers, name, start); 1637 psFree (start); 1638 return (true); 1639 } 1640 1641 psF64 psTimerClear (char *name) 1642 { 1643 psF64 timerTime = 0.0; 1644 bool status; 1645 1646 if (name == NULL) 1647 return false; 1648 timerTime = psTimerMark(name); 1649 status = psHashRemove (timers, name); 1650 strncpy(timerName, "\0", 256); 1651 if ( !status ) 1652 return 0.0; 1653 else 1654 return timerTime; 1655 } 1656 1657 // get current elapsed time on named timer 1658 psF64 psTimerMark (char *name) 1659 { 1660 1661 psTime *start; 1662 psTime *mark; 1663 psF64 delta; 1664 1665 if (timers == NULL) 1666 return (0); 1667 start = (psTime*)psHashLookup (timers, name); 1668 if (start == NULL) 1669 return (0); 1670 mark = psTimeGetNow (PS_TIME_UTC); 1671 delta = psTimeDelta (mark, start); 1672 psFree (mark); 1673 // psFree (start); -- XXX is psHashLookup not psMemCopying? 1674 1675 return (delta); 1676 } 1677 1678 psF64 psTimerStop(void) 1679 { 1680 psF64 timerTime = 0.0; 1681 1682 if ( strncmp(timerName, "\0", 256) ) 1683 timerTime = psTimerMark(timerName); 1684 strncpy(timerName, "\0", 2); 1685 psTimerFree(); 1686 return timerTime; 1687 } 1688 1689 void psTimeInitialize(const char *timeConfig) 1690 { 1691 p_psTimeInit(timeConfig); 1692 } 1693 1694 void psTimeFinalize(void) 1695 { 1696 p_psTimeFinalize(); 1697 } 1698
Note:
See TracChangeset
for help on using the changeset viewer.
