Pregunta

¿Hay razones bien conocidas para sigprocmask () para segfault cuando se utiliza en una aplicación multiproceso?

Tengo una aplicación que crea múltiples hilos usando clone (). He determinado que por alguna razón cuando uso sigprocmask que segfaults (no todo el tiempo sin embargo). A partir de la traza inversa () También parece que la violación de segmento que está ocurriendo cuando uso sigprocmask () después de un siglongjmp ().

¿Alguna idea?

¿Fue útil?

Solución

Comprobar el segundo y el tercer argumento. Si no son NULL, asegurarse de que son cada uno un puntero válido a una sigset_t.

Nota que sigprocmask() se define solamente oficialmente para un proceso de una sola rosca. Un proceso de multiproceso debe utilizar pthread_sigmask() su lugar, que toma los mismos argumentos a pesar de que devuelve el código de error en lugar de utilizar errno.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top