FreeBSD Bugzilla – Attachment 146159 Details for
Bug 192918
[patch] A thread will spin if a signal interrupts umtxq_sleep_pi.
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
proposed patch
umtx_suspend.patch (text/plain), 919 bytes, created by
eric
on 2014-08-22 15:11:27 UTC
(
hide
)
Description:
proposed patch
Filename:
MIME Type:
Creator:
eric
Created:
2014-08-22 15:11:27 UTC
Size:
919 bytes
patch
obsolete
>commit df40839589058d61ca28655a8afd354daa65b573 >Author: evangyzen <eric_van_gyzen@dell.com> >Date: Fri Aug 22 09:45:11 2014 -0400 > > do not overwrite return value from umtxq_sleep_pi > >diff --git a/sys/kern/kern_umtx.c b/sys/kern/kern_umtx.c >index 0e21383..b54ea5b 100644 >--- a/sys/kern/kern_umtx.c >+++ b/sys/kern/kern_umtx.c >@@ -2072,23 +2072,22 @@ do_lock_pi(struct thread *td, struct umutex *m, uint32_t flags, > * unlocking the umtx. > */ > if (old == owner) > error = umtxq_sleep_pi(uq, pi, owner & ~UMUTEX_CONTESTED, > "umtxpi", timeout == NULL ? NULL : &timo); > else { > umtxq_unbusy(&uq->uq_key); > umtxq_unlock(&uq->uq_key); > } > >- error = umtxq_check_susp(td); >- if (error != 0) >- break; >+ if (error == 0) >+ error = umtxq_check_susp(td); > } > > umtxq_lock(&uq->uq_key); > umtx_pi_unref(pi); > umtxq_unlock(&uq->uq_key); > > umtx_key_release(&uq->uq_key); > return (error); > } >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 192918
:
146158
| 146159