2016-10-12 3 views
1

Ich schreibe einen einfachen Zeichen Gerätetreiber für Linux mit Blockierung von lesen() und schreiben().Linux Treiber Set Cancellation Point

Was ich tun möchte, ist es, sie als Stornierungspunkte zu setzen, so dass das Aufrufen eines pthread_cancel auf einem Thread, der für diese Funktionen gesperrt ist, zum Beenden führt.

Wie ist es möglich, sie als Löschpunkte zu setzen?

Vielen Dank im Voraus.

Antwort

2

Wenn Sie den Kernel-Treiber schreiben, müssen Sie nur sicherstellen, dass read() und write() korrekt als Löschpunkte für den Benutzerbereich fungieren, um sicherzustellen, dass sie sofort zurückkehren, wenn während des Wartens ein Signal ausgelöst wird im Kernel-Bereich (entweder mit einer kurzen Anzahl von Elementen oder EINTR Fehler).

Dies bedeutet in der Regel gefolgt von einer Überprüfung für if (signal_pending(current)).