我想在Linux 2.6+的多线程进程中使用setitimer()
(或更少的可能性,alarm()
),并使用启用NPTL的libc。哪个线程将从内核接收sigalarm (SIGALRM)
?setitimer,SIGALRM和多线程进程(linux,c)
谢谢。
2014-04更新:我应该如何在多线程程序中设置setitimer()
,如果我想写一个像gperftools的cpuprofile这样的分析工具;但在我的工具中,我想支持动态链接的程序(因此可以将自己的库注入到init分析中)以及静态链接的程序(无法做到^^^^^^)。
我目前的分析工具可与正好fork()
后exec()
之前设置setitimer
,并且它还采用ptrace
,并得到了目标程序的控制和劫持由setitimer
产生SIGPROF/SIGVPROF/SIGALRM。我不确切知道它如何与多线程程序一起工作。
对于freebsd和solaris来说是一样的吗? – osgx 2010-04-06 17:55:36