Frage

Gibt es irgendwelche bekannten Gründe für sigprocmask (), wenn sie in einer Multithread-Anwendung verwendet, um segfault?

ich eine Anwendung, die mehrere Threads mit Klon erzeugt (). Ich habe aus irgendeinem Grund festgestellt, dass, wenn ich sigprocmask verwenden es segfaults (nicht die ganze Zeit obwohl). Von der Backtrace () es scheint auch, wie die segfault auftreten wird, wenn ich sigprocmask () nach einem siglongjmp () verwenden.

Irgendwelche Ideen?

War es hilfreich?

Lösung

Überprüfen Sie die zweite und dritte Argument. Wenn sie nicht NULL sind, stellen Sie sicher, dass sie jeweils einen gültigen Zeiger auf eine sigset_t sind.

Beachten Sie, dass sigprocmask() nur offiziell für einen Single-Thread-Prozess definiert ist. Ein Multi-Thread-Prozess sollte stattdessen verwenden pthread_sigmask(), die die gleichen Argumente verwendet, obwohl es den Fehlercode anstatt mit errno zurück.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top