Hallo,
ich habe hier gerade eine komische Interferenz zwischen der pthread library und dem Setzen von Signalaktionen.
Gibt es irgendwelche Einschränkungen beim Benutzen von sigaction(), wenn pthreads benutzt werden?
Das Problem manifestiert sich folgendermaßen: Ein Programm (bzw. die Library, die es benutzt) versucht mit sigaction einen Signalhandler zu installieren, um auf Signale von außen reagieren zu können sigaction(33,&act,NULL); Wird das Programm nun nicht mit -lpthread gelinkt funktioniert es. Wenn allerdings explizit -lpthread beim Linken gesetzt ist, oder eine der benutzten Libraries pthread verlangt, dann kommt an dieser Stelle der Fehler EINVAL was für Sigaction "falsche Signalnummer" bedeutet
Kann jemand damit etwas anfangen oder mir einen Tip geben, wo ich zu suchen beginnen kann?
Nähere Informationen: es geht um dyninstAPI http://www.dyninst.org/ im Zusammenhang mit TAU http://www.acl.lanl.gov/tau/ (nicht immer greifbar) Wenn ich das dyner Tool mit einer threaded Version von Tcl linke, bricht es mit obigem Fehler ab, bei einer nicht gethreadeten Version funktioniert es ... Vielleicht ist das auch verantwortlich dafür, daß ich keine threaded Applikation automatisch instrumentieren kann (tau_run).
Ich bin mit meinem Latein am Ende und hoffe, ihr könnt mir weiterhelfen oder mein Suchen in die richtige Richtung lenken.
Uwe Koloska