FreeBSD Bugzilla – Attachment 255955 Details for
Bug 283101
pthread_cancel() doesn't cancel a thread that's currently in pause()
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Debug SIGCANCEL delivery
1.patch (text/plain), 943 bytes, created by
Konstantin Belousov
on 2024-12-19 16:39:41 UTC
(
hide
)
Description:
Debug SIGCANCEL delivery
Filename:
MIME Type:
Creator:
Konstantin Belousov
Created:
2024-12-19 16:39:41 UTC
Size:
943 bytes
patch
obsolete
>diff --git a/lib/libthr/thread/thr_private.h b/lib/libthr/thread/thr_private.h >index d6c12348e3ab..34417c3267e0 100644 >--- a/lib/libthr/thread/thr_private.h >+++ b/lib/libthr/thread/thr_private.h >@@ -421,6 +421,9 @@ struct pthread { > ((thr)->cancel_pending && (thr)->cancel_enable && \ > (thr)->no_cancel == 0) > >+ int sigcancel_cnt; >+ int sigcancel_crit_cnt; >+ > /* Cancellation is enabled */ > int cancel_enable; > >diff --git a/lib/libthr/thread/thr_sig.c b/lib/libthr/thread/thr_sig.c >index b953c430158c..45cc06c6d005 100644 >--- a/lib/libthr/thread/thr_sig.c >+++ b/lib/libthr/thread/thr_sig.c >@@ -191,8 +191,11 @@ sigcancel_handler(int sig __unused, > struct pthread *curthread = _get_curthread(); > int err; > >- if (THR_IN_CRITICAL(curthread)) >+ curthread->sigcancel_cnt++; >+ if (THR_IN_CRITICAL(curthread)) { >+ curthread->sigcancel_crit_cnt++; > return; >+ } > err = errno; > check_suspend(curthread); > check_cancel(curthread, ucp);
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 283101
:
255901
|
255902
| 255955 |
256100