mirror of
https://github.com/freebsd/freebsd-src.git
synced 2024-12-04 05:58:57 +00:00
thread_single(9): decline external requests for traced or debugger-stopped procs
Debugger has the powers to cause unbound delay in single-threading, which then blocks the threaded taskqueue. The reproducer is `truss -f timeout 2 sleep 10`. Reported by: mjg Reviewed by: markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D44523
This commit is contained in:
parent
0cade55660
commit
9241ebc796
@ -1248,6 +1248,9 @@ thread_single(struct proc *p, int mode)
|
||||
return (1);
|
||||
msleep(&p->p_flag, &p->p_mtx, PCATCH, "thrsgl", 0);
|
||||
}
|
||||
if ((p->p_flag & (P_STOPPED_SIG | P_TRACED)) != 0 ||
|
||||
(p->p_flag2 & P2_WEXIT) != 0)
|
||||
return (1);
|
||||
} else if ((p->p_flag & P_HADTHREADS) == 0)
|
||||
return (0);
|
||||
if (p->p_singlethread != NULL && p->p_singlethread != td)
|
||||
|
Loading…
Reference in New Issue
Block a user