threadexitsall should take it down (and everything else).
don't use threadkill or postnote.  instead send the thread
something on the channel it's waiting on (like a nil)
indicating that it should exit cleanly.

i'm very surprised that threadexitsall doesn't work.
if you can create a simple test program demonstrating
a hang after threadexitsall, i'd like to see it.

russ


On 9/6/06, Skip Tavakkolian <[EMAIL PROTECTED]> wrote:
in an fs i wrote that's using thread library, the parent can't kill the child.
the child was started by proccreate and is in Rendez state; the thread
in the child is running a function that waits on a channel (recvp);

in fs.end(), i've tried threadexitsall, threadkill, and postnote --
PNPROC and PNGROUP -- but nothing worked.  what am i missing?

child process state:
cpu% acid 698004
/proc/698004/text:386 plan 9 executable

/sys/lib/acid/port
/sys/lib/acid/386
acid: stk()
rendezvous()+0x7 /sys/src/libc/9syscall/rendezvous.s:5
runthread(p=0x29a48)+0x83 /sys/src/libthread/sched.c:144
_sched()+0x90 /sys/src/libthread/sched.c:113
_schedinit(arg=0x29a48)+0x1a4 /sys/src/libthread/sched.c:77
main(argc=0x4,argv=0x7fffef9c)+0x38 /sys/src/libthread/main.c:34
_main+0x31 /sys/src/libc/386/main9.s:16
acid:


Reply via email to