Domanda

Ci sono dei motivi ben noti per sigprocmask () per segfault quando viene utilizzato in un'applicazione multithread?

Ho un'applicazione che crea più thread utilizzando clone (). Ho deciso che per qualche motivo quando lo uso sigprocmask che segfaults (non tutto il tempo però). Dal backtrace () sembra anche come la segfault è in corso quando uso sigprocmask () dopo un siglongjmp ().

Tutte le idee?

È stato utile?

Soluzione

Controlla il secondo e il terzo argomento. Se non sono NULL, in modo che ciascuno di essi è un puntatore valido ad un sigset_t.

Si noti che sigprocmask() solo è ufficialmente definito per un processo singolo filettato. Un processo multithread dovrebbe usare pthread_sigmask() invece, che prende gli stessi argomenti sebbene restituisce il codice di errore anziché utilizzare errno.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top