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