Die Funktion mutex_lock_interruptible() im Linux-Kernel versucht grundsätzlich, einen Mutex zu sperren und wartet weiter, bis eine Aufgabe unterbrochen wird. Nun, wie unterbreche ich eigentlich eine Aufgabe?Linux Kernel mutex_lock_interruptible
3
A
Antwort
7
Suffix _interruptible
im Linux-Kernel bedeutet, dass das Warten durch die Funktion unterbrochen wird, wenn der Thread (Prozess) das Signal empfängt.
Es kann Signal gesendet werden durch kill()
Benutzer-Space-Funktion, oder Signale von bestimmten Funktionen generiert, wenn Bedingung erfüllt, z. durch den Timer (create_timer()
, wenn die Zeit abgelaufen ist, oder durch asinchronous IO, wenn anstehende Operation abgeschlossen ist.
Hinweis, dass unterbrechungs warten kann nicht einmal von SIGKILL unterbrochen werden, dh Prozess kann erst Warte Enden abgeschlossen sein.
Ich habe einen Kernel-Thread warten auf einen Mutex und ich will es warten zu stoppen und einen Fehlercode zurückgeben, wie kann ich das tun? Ist send_sig() der Weg, es zu tun oder gibt es einen besseren Weg? –
Ja, Sie können 'send_sig()' für das Sendesignal im Kernel verwenden. – Tsyvarev