summaryrefslogtreecommitdiff
path: root/ext/tap-mac/tuntap/src/lock.cc
diff options
context:
space:
mode:
Diffstat (limited to 'ext/tap-mac/tuntap/src/lock.cc')
-rw-r--r--ext/tap-mac/tuntap/src/lock.cc15
1 files changed, 10 insertions, 5 deletions
diff --git a/ext/tap-mac/tuntap/src/lock.cc b/ext/tap-mac/tuntap/src/lock.cc
index 0da48be2..9c78783a 100644
--- a/ext/tap-mac/tuntap/src/lock.cc
+++ b/ext/tap-mac/tuntap/src/lock.cc
@@ -31,6 +31,8 @@
extern "C" {
+#include <kern/clock.h>
+
#include <sys/syslog.h>
#include <sys/proc.h>
@@ -120,10 +122,13 @@ tt_mutex::sleep(void *cond)
}
void
-tt_mutex::sleep(void *cond, uint64_t timeout)
+tt_mutex::sleep(void *cond, uint64_t nanoseconds)
{
- if (lck != NULL)
- lck_rw_sleep_deadline(lck, LCK_SLEEP_DEFAULT, cond, THREAD_INTERRUPTIBLE, timeout);
+ if (lck != NULL) {
+ uint64_t abstime;
+ nanoseconds_to_absolutetime(nanoseconds, &abstime);
+ lck_rw_sleep_deadline(lck, LCK_SLEEP_DEFAULT, cond, THREAD_INTERRUPTIBLE, abstime);
+ }
}
void
@@ -188,9 +193,9 @@ tt_gate::sleep(void* cond)
}
void
-tt_gate::sleep(void* cond, uint64_t timeout)
+tt_gate::sleep(void* cond, uint64_t nanoseconds)
{
- slock.sleep(cond, timeout);
+ slock.sleep(cond, nanoseconds);
}
void