commit - 1c39bb59193d68cb6119a053260d1381d303b24d
commit + c9896e2edba3bf17061447f3491a866a74e2cbb9
blob - af3764b55d044598cd9664735d99af01596deb18
blob + 5b5337e01b293849afe96c1b7d1a95ace6196156
--- acid/thread
+++ acid/thread
}
defn threadstkline(T){
- local stk, frame, pc, pc0, file, s, sym, i, stop;
+ local stk, frame, pc, pc0, file, s, sym, i, stop, P, mainpid;
- if T.state == Running then
+ if T.state == Running then {
+ P = (Proc)T.proc;
+ mainpid = pid;
+ if mainpid != P.pid then setproc(P.pid);
stk = strace({});
- else
+ if mainpid != P.pid then setproc(mainpid);
+ } else
stk = strace(label(T.sched));
stop = 0;
local T, Tq, mainpid;
mainpid = pid;
-// setproc(P.pid);
Tq = (Tqueue)P.threads;
T = (Thread)Tq.$head;
while T != 0 do{
thread(T);
T = (Thread)T.nextt;
}
-// setproc(mainpid);
}
defn threads(){
// setproc(P.pid);
if T.state == Running then{
+ if P.pid != mainpid then
+ setproc(P.pid);
stk();
+ if P.pid != mainpid then
+ setproc(mainpid);
} else {
labstk(T.sched);
}