Page MenuHomeFreeBSD

D7505.id19286.diff
No OneTemporary

D7505.id19286.diff

Index: sys/kern/kern_umtx.c
===================================================================
--- sys/kern/kern_umtx.c
+++ sys/kern/kern_umtx.c
@@ -3123,7 +3123,6 @@
umtxq_busy(&key);
cnt = umtxq_count(&key);
if (cnt > 0) {
- umtxq_signal(&key, 1);
/*
* Check if count is greater than 0, this means the memory is
* still being referenced by user code, so we can safely
@@ -3136,6 +3135,7 @@
if (error == -1)
error = EFAULT;
}
+ umtxq_signal(&key, 1);
}
umtxq_unbusy(&key);
umtxq_unlock(&key);
@@ -3235,8 +3235,6 @@
umtxq_busy(&key);
cnt = umtxq_count(&key);
if (cnt > 0) {
- umtxq_signal(&key, 1);
-
/*
* If this was the last sleeping thread, clear the waiters
* flag in _count.
@@ -3251,6 +3249,8 @@
error = EFAULT;
umtxq_lock(&key);
}
+
+ umtxq_signal(&key, 1);
}
umtxq_unbusy(&key);
umtxq_unlock(&key);

File Metadata

Mime Type
text/plain
Expires
Sun, Jan 18, 10:12 AM (6 h, 49 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
27708241
Default Alt Text
D7505.id19286.diff (882 B)

Event Timeline