summaryrefslogtreecommitdiff
path: root/debian/patches/upstreamme0007-kern-new-function-thread_sleep_lock.patch
diff options
context:
space:
mode:
authorJustus Winter <4winter@informatik.uni-hamburg.de>2015-07-25 02:42:21 +0200
committerJustus Winter <4winter@informatik.uni-hamburg.de>2015-07-25 02:42:21 +0200
commit334e3507a9dae1dd0c0d856afa18563bb1154ed1 (patch)
tree78aa7f4a925c40e2051979ad9ddcb03d31a2aa2f /debian/patches/upstreamme0007-kern-new-function-thread_sleep_lock.patch
parentde5476a59f5669694ff6da85e17ce93de52f7bb7 (diff)
add patch series
Diffstat (limited to 'debian/patches/upstreamme0007-kern-new-function-thread_sleep_lock.patch')
-rw-r--r--debian/patches/upstreamme0007-kern-new-function-thread_sleep_lock.patch59
1 files changed, 59 insertions, 0 deletions
diff --git a/debian/patches/upstreamme0007-kern-new-function-thread_sleep_lock.patch b/debian/patches/upstreamme0007-kern-new-function-thread_sleep_lock.patch
new file mode 100644
index 0000000..5497650
--- /dev/null
+++ b/debian/patches/upstreamme0007-kern-new-function-thread_sleep_lock.patch
@@ -0,0 +1,59 @@
+From b19e79ad919eb62aefba7372b37267feffbbeeaf Mon Sep 17 00:00:00 2001
+From: Justus Winter <4winter@informatik.uni-hamburg.de>
+Date: Sat, 25 Jul 2015 01:46:53 +0200
+Subject: [PATCH gnumach 7/7] kern: new function `thread_sleep_lock'
+
+* kern/sched_prim.c (thread_sleep_lock): New function.
+* kern/sched_prim.h (thread_sleep_lock): New delcaration.
+---
+ kern/sched_prim.c | 18 ++++++++++++++++++
+ kern/sched_prim.h | 4 ++++
+ 2 files changed, 22 insertions(+)
+
+diff --git a/kern/sched_prim.c b/kern/sched_prim.c
+index e8f260e..e354a21 100644
+--- a/kern/sched_prim.c
++++ b/kern/sched_prim.c
+@@ -458,6 +458,24 @@ void thread_sleep(
+ }
+
+ /*
++ * thread_sleep_lock:
++ *
++ * Cause the current thread to wait until the specified event
++ * occurs. The specified lock is unlocked before releasing
++ * the cpu. (This is a convenient way to sleep without manually
++ * calling assert_wait).
++ */
++void thread_sleep_lock(
++ event_t event,
++ lock_t lock,
++ boolean_t interruptible)
++{
++ assert_wait(event, interruptible); /* assert event */
++ lock_done(lock); /* release the lock */
++ thread_block((void (*)()) 0); /* block ourselves */
++}
++
++/*
+ * thread_bind:
+ *
+ * Force a thread to execute on the specified processor.
+diff --git a/kern/sched_prim.h b/kern/sched_prim.h
+index 62698dc..83d4594 100644
+--- a/kern/sched_prim.h
++++ b/kern/sched_prim.h
+@@ -69,6 +69,10 @@ extern void thread_sleep(
+ event_t event,
+ simple_lock_t lock,
+ boolean_t interruptible);
++extern void thread_sleep_lock(
++ event_t event,
++ lock_t lock,
++ boolean_t interruptible);
+ extern void thread_wakeup(void); /* for function pointers */
+ extern void thread_wakeup_prim(
+ event_t event,
+--
+2.1.4
+