¿Cómo hacer que una función async-signal-safe?
Tengo los siguientessigaction
función de controlador
void signal_term_handler(int sig)
{
printf("EXIT :TERM signal Received!\n");
int rc = flock(pid_file, LOCK_UN | LOCK_NB);
if(rc) {
char *piderr = "PID file unlock failed!";
fprintf(stderr, "%s\n", piderr);
printf(piderr);
}
abort();
}
Alguien me dijo queflock
yprintf
no son asíncronos a señales seguras. Y no pude encontrar una función alternativa async-signal-safe paraflock
en estolista.
y según el enlace anterior:
cuando una señal interrumpe una función insegura y la función de captura de señal llama a una función insegura, el comportamiento es indefinido
¿Hay alguna manera de hacerflock
async-señal-seguro? O hay otra solución para ejecutarflock
cuando reciboTERM
¿señal?