summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Modules/timemodule.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/Modules/timemodule.c b/Modules/timemodule.c
index 28d4ff7..9ea1f87 100644
--- a/Modules/timemodule.c
+++ b/Modules/timemodule.c
@@ -73,6 +73,10 @@ extern long sys_milli();
#define millitimer sys_milli
#endif /* AMOEBA */
+#ifdef BSD_TIME
+#define DO_MILLI
+#endif /* BSD_TIME */
+
#ifdef DO_MILLI
static object *
@@ -169,3 +173,33 @@ millitimer()
}
#endif /* THINK_C */
+
+
+#ifdef BSD_TIME
+
+#include <sys/types.h>
+#include <sys/time.h>
+
+static long
+millitimer()
+{
+ struct timeval t;
+ struct timezone tz;
+ if (gettimeofday(&t, &tz) != 0)
+ return -1;
+ return t.tv_sec*1000 + t.tv_usec/1000;
+
+}
+
+static
+millisleep(msecs)
+ long msecs;
+{
+ struct timeval t;
+ t.tv_sec = msecs/1000;
+ t.tv_usec = (msecs%1000)*1000;
+ (void) select(0, (fd_set *)0, (fd_set *)0, (fd_set *)0, &t);
+}
+
+#endif /* BSD_TIME */
+