linux threaded application hang
Andriy Gapon
avg at icyb.net.ua
Wed Oct 13 03:33:00 PDT 2004
on 13.10.2004 12:23 Andriy Gapon said the following:
> #it seems that main thread starts to wait on some condition
> #until it is awaken by child thread by a signal
> 5715 setmqcap CALL linux_rt_sigsuspend(0xbfbfd910,0x8)
> 5716 setmqcap CALL read(0x3,0x805b264,0x94)
> 5716 setmqcap GIO fd 3 read 148 bytes
> 5716 setmqcap RET read 148/0x94
> 5716 setmqcap CALL linux_mmap(0x805b194)
> 5716 setmqcap RET linux_mmap -1086394368/0xbf3ef000
> 5716 setmqcap CALL mprotect(0xbf3ef000,0x1000,0)
> 5716 setmqcap RET mprotect 0
having read more about old linux threads, it seems that this "child
thread" (5716) is what they call "thread manager"
> #child thread creates another thread, that's probably not important
> 5716 setmqcap CALL linux_clone(0xf21,0xbf3ffbf8)
> 5716 setmqcap RET linux_clone 5717/0x1655
> 5717 setmqcap RET linux_fork 0
and this is an actual new thread
> #child thread wants to wake up main thread (pid == 5715 == 0x1653)
> #by sending signal 0x20 == 32 (== linux SIGRTMIN ?)
> 5716 setmqcap CALL linux_kill(0x1653,0x20)
>
> #but it seems to fail.. or not ?
> #I am not sure how to interpret "RESTART" here
> 5716 setmqcap RET linux_kill RESTART
--
Andriy Gapon
More information about the freebsd-emulation
mailing list