setitimer, SIGALRM и многопоточный процесс (linux, c)
Я хочу использоватьsetitimer()
(или менее вероятно,alarm()
) в многопоточном процессе в Linux 2.6+ с поддержкой NPTL libc. Какой поток получитsigalarm (SIGALRM)
из ядра?
Благодарю.
Обновление 2014-04: как установитьsetitimer()
в многопоточной программе, если я хочу написать утилиту профилирования, такую как gpftools's cpuprofile; но в моем инструменте я хочу поддерживать как динамически связанные программы (чтобы можно было внедрить мою собственную библиотеку для профилирования инициализации), так и статически связанные программы (без возможности выполнения ^^^^^^).
Мой текущий инструмент профилирования работает с настройкамиsetitimer
сразу послеfork()
и раньшеexec()
и он также используетptrace
получить контроль над целевой программой и перехватить SIGPROF / SIGVPROF / SIGALRM, сгенерированныйsetitimer
, Я не знаю точно, как это работает с многопоточными программами.