*** empty log message ***
authorClaus Gittinger <cg@exept.de>
Mon, 10 Nov 2003 15:55:20 +0100
changeset 7741 0bbe687607e0
parent 7740 5a9d544b8906
child 7742 936f337d9f2a
*** empty log message ***
UnixOperatingSystem.st
--- a/UnixOperatingSystem.st	Mon Nov 10 14:28:32 2003 +0100
+++ b/UnixOperatingSystem.st	Mon Nov 10 15:55:20 2003 +0100
@@ -8289,21 +8289,18 @@
      or use instances of Time, Date or AbsoluteTime to work with.
     "
 
-    |seconds millis|
-
-%{
-
+%{  /* NOCONTEXT */
     long t;
     long _secs, _millis;
 
 #if !defined(HAS_GETTIMEOFDAY) 
 # if defined(HAS_FTIME)
     {
-	struct timeb timebuffer;
-
-	ftime(&timebuffer);
-	_secs = timebuffer.time;
-	_millis = timebuffer.millitm;
+        struct timeb timebuffer;
+
+        ftime(&timebuffer);
+        _secs = timebuffer.time;
+        _millis = timebuffer.millitm;
     }
 #   define HAVE_TIME
 # endif /* HAS_FTIME */
@@ -8311,19 +8308,19 @@
 # ifndef HAVE_TIME
 #  if defined(SYSV) && defined(HZ)
     {
-	/* 
-	 * sys5 time; we have to fake the information
-	 * the returned value is inexact.
-	 */
-	long ticks;
-	struct tms tb;
-
-	_secs = time(0);   /* seconds since 1970 ... */
-
-	ticks = times(&tb);
-	t = (ticks * 1000) / HZ;
-	t = t % 1000;
-	_millis = __MKSMALLINT(t);
+        /* 
+         * sys5 time; we have to fake the information
+         * the returned value is inexact.
+         */
+        long ticks;
+        struct tms tb;
+
+        _secs = time(0);   /* seconds since 1970 ... */
+
+        ticks = times(&tb);
+        t = (ticks * 1000) / HZ;
+        t = t % 1000;
+        _millis = __MKSMALLINT(t);
     }
 #   define HAVE_TIME
 #  endif /* OLD SYSV stuff */
@@ -8337,16 +8334,16 @@
      */
 
     {
-	/*
-	 * bsd time
-	 */
-	struct timeval tb;
-	/* struct timezone tzb; */
-
-	gettimeofday(&tb, NULL /* &tzb */);
-
-	_secs = tb.tv_sec;
-	_millis = tb.tv_usec / 1000;
+        /*
+         * bsd time
+         */
+        struct timeval tb;
+        /* struct timezone tzb; */
+
+        gettimeofday(&tb, NULL /* &tzb */);
+
+        _secs = tb.tv_sec;
+        _millis = tb.tv_usec / 1000;
     }
 #endif
 
@@ -8362,30 +8359,38 @@
 
 #ifdef alpha64
     {
-	unsigned INT _lsecs, _lmillis, rslt;
-
-	_lsecs = (INT)_secs;
-	_lmillis = (INT)_millis;
-	rslt = _lsecs * 1000 + _lmillis;
-	RETURN (__MKUINT(rslt));
+        unsigned INT _lsecs, _lmillis, rslt;
+
+        _lsecs = (INT)_secs;
+        _lmillis = (INT)_millis;
+        rslt = _lsecs * 1000 + _lmillis;
+        RETURN (__MKUINT(rslt));
     }
 #else
 # ifdef HAS_LONGLONG
     {
-	unsigned long long _lsecs, _lmillis, rslt;
-	unsigned low, hi;
-
-	_lsecs = (long long)_secs;
-	_lmillis = (long long)_millis;
-	rslt = _lsecs * 1000 + _lmillis;
-	low = rslt & 0xFFFFFFFF;
-	hi = rslt >> 32;
-	RETURN (__MKLARGEINT64(1, low, hi));
+        unsigned long long _lsecs, _lmillis, rslt;
+        unsigned low, hi;
+
+        _lsecs = (long long)_secs;
+        _lmillis = (long long)_millis;
+        rslt = _lsecs * 1000 + _lmillis;
+        low = rslt & 0xFFFFFFFF;
+        hi = rslt >> 32;
+        RETURN (__MKLARGEINT64(1, low, hi));
     }
 # else
-    seconds = __MKUINT(_secs);
-    millis = __MKUINT(_millis);
-    RETURN (__ARRAY_WITH2(seconds, millis));
+    {
+        OBJ seconds, millis, rslt;
+
+        seconds = __MKUINT(_secs);
+        __PROTECT__(seconds);
+        millis = __MKUINT(_millis);
+        __PROTECT__(millis);
+        rslt = __ARRAY_WITH2(seconds, millis);
+        __UNPROTECT__(millis);
+        __UNPROTECT__(seconds);
+        RETURN ( rslt );
 # endif /* long long */
 #endif /* alpha64 */
 %}.
@@ -12170,7 +12175,7 @@
 !UnixOperatingSystem class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/UnixOperatingSystem.st,v 1.192 2003-11-10 13:27:35 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/UnixOperatingSystem.st,v 1.193 2003-11-10 14:55:20 cg Exp $'
 ! !
 
 UnixOperatingSystem initialize!