From 4b7a56bdfb7158630544b6154686c1af8eb50127 Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Mon, 9 Nov 2009 01:25:27 -0600 Subject: [PATCH] beginning of a monotonic clock implementation. still needs linux and mac -- clock_gettime() and mach_absolute_time() --- extra/monotonic-clock/authors.txt | 1 + extra/monotonic-clock/monotonic-clock.factor | 7 +++++++ extra/monotonic-clock/unix/linux/authors.txt | 1 + extra/monotonic-clock/unix/linux/linux.factor | 4 ++++ extra/monotonic-clock/unix/linux/tags.txt | 1 + extra/monotonic-clock/unix/macosx/authors.txt | 1 + .../monotonic-clock/unix/macosx/macosx.factor | 4 ++++ extra/monotonic-clock/unix/macosx/tags.txt | 1 + extra/monotonic-clock/windows/authors.txt | 1 + extra/monotonic-clock/windows/tags.txt | 1 + extra/monotonic-clock/windows/windows.factor | 19 +++++++++++++++++++ 11 files changed, 41 insertions(+) create mode 100644 extra/monotonic-clock/authors.txt create mode 100755 extra/monotonic-clock/monotonic-clock.factor create mode 100644 extra/monotonic-clock/unix/linux/authors.txt create mode 100755 extra/monotonic-clock/unix/linux/linux.factor create mode 100644 extra/monotonic-clock/unix/linux/tags.txt create mode 100644 extra/monotonic-clock/unix/macosx/authors.txt create mode 100755 extra/monotonic-clock/unix/macosx/macosx.factor create mode 100644 extra/monotonic-clock/unix/macosx/tags.txt create mode 100644 extra/monotonic-clock/windows/authors.txt create mode 100644 extra/monotonic-clock/windows/tags.txt create mode 100755 extra/monotonic-clock/windows/windows.factor diff --git a/extra/monotonic-clock/authors.txt b/extra/monotonic-clock/authors.txt new file mode 100644 index 0000000000..7c1b2f2279 --- /dev/null +++ b/extra/monotonic-clock/authors.txt @@ -0,0 +1 @@ +Doug Coleman diff --git a/extra/monotonic-clock/monotonic-clock.factor b/extra/monotonic-clock/monotonic-clock.factor new file mode 100755 index 0000000000..1dead952b2 --- /dev/null +++ b/extra/monotonic-clock/monotonic-clock.factor @@ -0,0 +1,7 @@ +! Copyright (C) 2009 Doug Coleman. +! See http://factorcode.org/license.txt for BSD license. +USING: system ; +IN: monotonic-clock + +HOOK: monotonic-count os ( -- n ) + diff --git a/extra/monotonic-clock/unix/linux/authors.txt b/extra/monotonic-clock/unix/linux/authors.txt new file mode 100644 index 0000000000..7c1b2f2279 --- /dev/null +++ b/extra/monotonic-clock/unix/linux/authors.txt @@ -0,0 +1 @@ +Doug Coleman diff --git a/extra/monotonic-clock/unix/linux/linux.factor b/extra/monotonic-clock/unix/linux/linux.factor new file mode 100755 index 0000000000..2ceb0c398b --- /dev/null +++ b/extra/monotonic-clock/unix/linux/linux.factor @@ -0,0 +1,4 @@ +! Copyright (C) 2009 Doug Coleman. +! See http://factorcode.org/license.txt for BSD license. +USING: ; +IN: monotonic-clock.unix.linux diff --git a/extra/monotonic-clock/unix/linux/tags.txt b/extra/monotonic-clock/unix/linux/tags.txt new file mode 100644 index 0000000000..6bf68304bb --- /dev/null +++ b/extra/monotonic-clock/unix/linux/tags.txt @@ -0,0 +1 @@ +unportable diff --git a/extra/monotonic-clock/unix/macosx/authors.txt b/extra/monotonic-clock/unix/macosx/authors.txt new file mode 100644 index 0000000000..7c1b2f2279 --- /dev/null +++ b/extra/monotonic-clock/unix/macosx/authors.txt @@ -0,0 +1 @@ +Doug Coleman diff --git a/extra/monotonic-clock/unix/macosx/macosx.factor b/extra/monotonic-clock/unix/macosx/macosx.factor new file mode 100755 index 0000000000..b16061d12a --- /dev/null +++ b/extra/monotonic-clock/unix/macosx/macosx.factor @@ -0,0 +1,4 @@ +! Copyright (C) 2009 Doug Coleman. +! See http://factorcode.org/license.txt for BSD license. +USING: ; +IN: monotonic-clock.unix.macosx diff --git a/extra/monotonic-clock/unix/macosx/tags.txt b/extra/monotonic-clock/unix/macosx/tags.txt new file mode 100644 index 0000000000..6bf68304bb --- /dev/null +++ b/extra/monotonic-clock/unix/macosx/tags.txt @@ -0,0 +1 @@ +unportable diff --git a/extra/monotonic-clock/windows/authors.txt b/extra/monotonic-clock/windows/authors.txt new file mode 100644 index 0000000000..7c1b2f2279 --- /dev/null +++ b/extra/monotonic-clock/windows/authors.txt @@ -0,0 +1 @@ +Doug Coleman diff --git a/extra/monotonic-clock/windows/tags.txt b/extra/monotonic-clock/windows/tags.txt new file mode 100644 index 0000000000..6bf68304bb --- /dev/null +++ b/extra/monotonic-clock/windows/tags.txt @@ -0,0 +1 @@ +unportable diff --git a/extra/monotonic-clock/windows/windows.factor b/extra/monotonic-clock/windows/windows.factor new file mode 100755 index 0000000000..85732e32fd --- /dev/null +++ b/extra/monotonic-clock/windows/windows.factor @@ -0,0 +1,19 @@ +! Copyright (C) 2009 Doug Coleman. +! See http://factorcode.org/license.txt for BSD license. +USING: alien.c-types alien.data fry kernel monotonic-clock +system windows.errors windows.kernel32 ; +IN: monotonic-clock.windows + + ] dip + '[ _ execute win32-error=0/f ] keep *ulonglong ; inline + +PRIVATE> + +M: windows monotonic-count ( -- n ) + \ QueryPerformanceCounter execute-performance-query ; + +: cpu-frequency ( -- n ) + \ QueryPerformanceFrequency execute-performance-query ;