OSSP CVS Repository

ossp - Check-in [118]
Not logged in
[Honeypot]  [Browse]  [Home]  [Login]  [Reports
[Search]  [Ticket]  [Timeline
  [Patchset]  [Tagging/Branching

Check-in Number: 118
Date: 2000-Jul-27 21:18:46 (local)
2000-Jul-27 19:18:46 (UTC)
User:rse
Branch:
Comment: *** empty log message ***
Tickets:
Inspections:
Files:
ossp-pkg/pth/ChangeLog      1.521 -> 1.522     3 inserted, 0 deleted
ossp-pkg/pth/pth_time.c      added-> 1.25

ossp-pkg/pth/ChangeLog 1.521 -> 1.522

--- ChangeLog    2000/07/18 09:02:03     1.521
+++ ChangeLog    2000/07/28 19:18:46     1.522
@@ -20,6 +20,9 @@
   __|_(_) |_|_____________________________________________________________ 
     
   Changes between 1.4a2 and 1.4a3 (01-Jul-2000 to xx-Jul-2000)
+
+   *) Fixed (unused) pth_time_mul() function: operator & replaced by %
+      [Tim Harris <tim.harris@snellwilcox.com>]
    
    *) Use --disable-lock for ltconfig.
       [Ralf S. Engelschall]


ossp-pkg/pth/pth_time.c -> 1.25

*** /dev/null    Sun Apr 28 21:00:34 2024
--- -    Sun Apr 28 21:00:43 2024
***************
*** 0 ****
--- 1,182 ----
+ /*
+ **  GNU Pth - The GNU Portable Threads
+ **  Copyright (c) 1999-2000 Ralf S. Engelschall <rse@engelschall.com>
+ **
+ **  This file is part of GNU Pth, a non-preemptive thread scheduling
+ **  library which can be found at http://www.gnu.org/software/pth/.
+ **
+ **  This library is free software; you can redistribute it and/or
+ **  modify it under the terms of the GNU Lesser General Public
+ **  License as published by the Free Software Foundation; either
+ **  version 2.1 of the License, or (at your option) any later version.
+ **
+ **  This library is distributed in the hope that it will be useful,
+ **  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ **  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ **  Lesser General Public License for more details.
+ **
+ **  You should have received a copy of the GNU Lesser General Public
+ **  License along with this library; if not, write to the Free Software
+ **  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ **  USA, or contact Ralf S. Engelschall <rse@engelschall.com>.
+ **
+ **  pth_time.c: Pth time calculations
+ */
+                              /* ``Real programmers confuse
+                                   Christmas and Halloween
+                                   because DEC 25 = OCT 31.''
+                                              -- Unknown     */
+ #include "pth_p.h"
+ 
+ #if cpp
+ #define PTH_TIME_NOW  (pth_time_t *)(0)
+ #define PTH_TIME_ZERO &pth_time_zero
+ #define PTH_TIME(sec,usec) { sec, usec }
+ #define pth_time_equal(t1,t2) \
+         (((t1).tv_sec == (t2).tv_sec) && ((t1).tv_usec == (t2).tv_usec))
+ #endif /* cpp */
+ 
+ /* a global variable holding a zero time */
+ intern pth_time_t pth_time_zero = { 0L, 0L };
+ 
+ /* sleep for a specified amount of microseconds */
+ intern void pth_time_usleep(unsigned long usec)
+ {
+ #ifdef HAVE_USLEEP
+     usleep((unsigned int )usec);
+ #else
+     struct timeval timeout;
+     timeout.tv_sec  = usec / 1000000;
+     timeout.tv_usec = usec - (1000000 * timeout.tv_sec);
+     while (pth_sc(select)(1, NULL, NULL, NULL, &timeout) < 0 && errno == EINTR) ;
+ #endif
+     return;
+ }
+ 
+ /* calculate: t1 = t2 */
+ #if cpp
+ #if defined(HAVE_GETTIMEOFDAY_ARGS1)
+ #define __gettimeofday(t) gettimeofday(t)
+ #else
+ #define __gettimeofday(t) gettimeofday(t, NULL)
+ #endif
+ #define pth_time_set(t1,t2) \
+     do { \
+         if ((t2) == PTH_TIME_NOW) \
+             __gettimeofday((t1)); \
+         else { \
+             (t1)->tv_sec  = (t2)->tv_sec; \
+             (t1)->tv_usec = (t2)->tv_usec; \
+         } \
+     } while (0)
+ #endif /* cpp */
+ 
+ /* time value constructor */
+ pth_time_t pth_time(long sec, long usec)
+ {
+     pth_time_t tv;
+ 
+     tv.tv_sec  = sec;
+     tv.tv_usec = usec;
+     return tv;
+ }
+ 
+ /* timeout value constructor */
+ pth_time_t pth_timeout(long sec, long usec)
+ {
+     pth_time_t tv;
+     pth_time_t tvd;
+ 
+     pth_time_set(&tv, PTH_TIME_NOW);
+     tvd.tv_sec  = sec;
+     tvd.tv_usec = usec;
+     pth_time_add(&tv, &tvd);
+     return tv;
+ }
+ 
+ /* calculate: t1 <=> t2 */
+ intern int pth_time_cmp(pth_time_t *t1, pth_time_t *t2)
+ {
+     int rc;
+ 
+     rc = t1->tv_sec - t2->tv_sec;
+     if (rc == 0)
+          rc = t1->tv_usec - t2->tv_usec;
+     return rc;
+ }
+ 
+ /* calculate: t1 = t1 + t2 */
+ #if cpp
+ #define pth_time_add(t1,t2) \
+     (t1)->tv_sec  += (t2)->tv_sec; \
+     (t1)->tv_usec += (t2)->tv_usec; \
+     if ((t1)->tv_usec > 1000000) { \
+         (t1)->tv_sec  += 1; \
+         (t1)->tv_usec -= 1000000; \
+     }
+ #endif
+ 
+ /* calculate: t1 = t1 - t2 */
+ #if cpp
+ #define pth_time_sub(t1,t2) \
+     (t1)->tv_sec  -= (t2)->tv_sec; \
+     (t1)->tv_usec -= (t2)->tv_usec; \
+     if ((t1)->tv_usec < 0) { \
+         (t1)->tv_sec  -= 1; \
+         (t1)->tv_usec += 1000000; \
+     }
+ #endif
+ 
+ /* calculate: t1 = t1 / n */
+ intern void pth_time_div(pth_time_t *t1, int n)
+ {
+     long q, r;
+ 
+     q = (t1->tv_sec / n);
+     r = (((t1->tv_sec % n) * 1000000) / n) + (t1->tv_usec / n);
+     if (r > 1000000) {
+         q += 1;
+         r -= 1000000;
+     }
+     t1->tv_sec  = q;
+     t1->tv_usec = r;
+     return;
+ }
+ 
+ /* calculate: t1 = t1 * n */
+ intern void pth_time_mul(pth_time_t *t1, int n)
+ {
+     t1->tv_sec  *= n;
+     t1->tv_usec *= n;
+     t1->tv_sec  += (t1->tv_usec / 1000000);
+     t1->tv_usec  = (t1->tv_usec % 1000000);
+     return;
+ }
+ 
+ /* convert a time structure into a double value */
+ intern double pth_time_t2d(pth_time_t *t)
+ {
+     double d;
+ 
+     d = ((double)t->tv_sec*1000000 + (double)t->tv_usec) / 1000000;
+     return d;
+ }
+ 
+ /* convert a time structure into a integer value */
+ intern int pth_time_t2i(pth_time_t *t)
+ {
+     int i;
+ 
+     i = (t->tv_sec*1000000 + t->tv_usec) / 1000000;
+     return i;
+ }
+ 
+ /* check whether time is positive */
+ intern int pth_time_pos(pth_time_t *t)
+ {
+     if (t->tv_sec > 0 && t->tv_usec > 0)
+         return 1;
+     else
+         return 0;
+ }
+ 

CVSTrac 2.0.1