🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: gnu.g++.lib.bug
1 messages
1 total messages Started by csusac!cvms!ronald Thu, 01 Jun 1989 02:35
additional USG support for libg++-1.35.0
#526
Author: csusac!cvms!ronald
Date: Thu, 01 Jun 1989 02:35
99 lines
3233 bytes
Here is an additional patch to go along with the patches I posted
previously that allows the use of the timer functions in libg++
on a USG (System V) machine.

--
Ronald Cole               | uucp:     cvms!ronald       voice: +1 916 895 8321
Senior Software Engineer  | internet: csusac!cvms!ronald@ucdavis.edu
CVM Systems               +----------------------------------------------------
	"No sex, please, we're software engineers." - Michael Swaine

------------------------- starts here -----------------------------
diff -rc2 libg++-1.35.0/src/builtin.cc libg++/src/builtin.cc
*** libg++-1.35.0/src/builtin.cc	Sun May  7 05:19:36 1989
--- libg++/src/builtin.cc	Wed May 31 13:36:40 1989
***************
*** 321,334 ****
  // surely OK for these machines...
  
! #if defined(BSD) || defined(vax) || defined(sun)
  
  extern "C" {
  #include <sys/time.h>
  #include <sys/resource.h>
  int   getrusage(int, struct rusage*);
  }
  
  static struct rusage Old_Time;
  static struct rusage New_Time;
  static int    Timer_Set = 0;
  
--- 321,345 ----
  // surely OK for these machines...
  
! #if defined(BSD) || defined(USG) || defined(vax) || defined(sun)
  
  extern "C" {
+ #ifdef USG
+ #include <sys/types.h>
+ #include <sys/param.h>
+ #include <sys/times.h>
+ #else
  #include <sys/time.h>
  #include <sys/resource.h>
  int   getrusage(int, struct rusage*);
+ #endif
  }
  
+ #ifdef USG
+ static struct tms Old_Time;
+ static struct tms New_Time;
+ #else
  static struct rusage Old_Time;
  static struct rusage New_Time;
+ #endif
  static int    Timer_Set = 0;
  
***************
*** 336,341 ****
--- 347,357 ----
  {
     Timer_Set = 1;
+ #ifdef USG
+    times(&Old_Time);
+    return((double) Old_Time.tms_utime / HZ);
+ #else
     getrusage(RUSAGE_SELF,&Old_Time);        /* set starting process time */
     return(Old_Time.ru_utime.tv_sec + (Old_Time.ru_utime.tv_usec / 1000000.0));
+ #endif
  }
  
***************
*** 353,365 ****
--- 369,393 ----
     else {
      /* get process time */
+ #ifdef USG
+       times(&New_Time);
+ #else
        getrusage(RUSAGE_SELF,&New_Time);
+ #endif
        if (Last_Time == 0.0) {
+ #ifdef USG
+ 	 return((double) (New_Time.tms_utime - Old_Time.tms_utime) / HZ);
+ #else
           return((New_Time.ru_utime.tv_sec - Old_Time.ru_utime.tv_sec) + 
                 ((New_Time.ru_utime.tv_usec - Old_Time.ru_utime.tv_usec) 
                  / 1000000.0));
+ #endif
        }
        else {
+ #ifdef USG
+ 	 return((double) New_Time.tms_utime / HZ - Last_Time);
+ #else
           return((New_Time.ru_utime.tv_sec + 
                  (New_Time.ru_utime.tv_usec / 1000000.0)) - Last_Time);
+ #endif
        }
     }
-------------------------- ends here ------------------------------
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads