posix timer_delete coredump - PullRequest
       18

posix timer_delete coredump

0 голосов
/ 14 января 2019

Мне не удалось найти способ проверить, существует ли один таймер posix в пользовательском режиме.

Я прочитал страницу руководства, а также прочитал код linux-kernel-posix, но все еще не могу найти способ сделать это.

Я создаю posix-таймер с помощью timer_create. Затем я перезагружаю свой процесс (таймер уничтожен?) , После этого «timer_delete» будет coredump.

обратная трассировка следующим образом:

Program terminated with signal 11, Segmentation fault.
#0  __timer_delete_new (timerid=0x1edb770) at ../nptl/sysdeps/unix/sysv/linux/timer_delete.c:40
40    int res = INLINE_SYSCALL (timer_delete, 1, kt->ktimerid);

1 Ответ

0 голосов
/ 14 января 2019

Я создаю posix-таймер с timer_create. Затем я перезагружаю свой процесс (таймер уничтожен?)

И fork, и exec уничтожают все существующие таймеры, созданные с помощью timer_create.

Мне не удалось найти способ проверить, существует ли один почтовый таймер в режиме пользователя.

Вы делаете это, отслеживая все свои таймеры.

Вы не можете проверить, существует ли произвольный timer_t, потому что библиотека C не поддерживает для вас список таймеров.

...