Handbuch zur dynamischen Ablaufverfolgung in Solaris

Prüfpunkte für Leser/Schreiber-Sperren

Leser/Schreiber-Sperren erlauben entweder mehreren Lesern oder einem einzigen Schreiber den gleichzeitigen Zugriff auf einen kritischen Abschnitt. Diese Sperren kommen in der Regel in Strukturen vor, die häufiger durchsucht als geändert werden, oder bei Threads, die viel Zeit im kritischen Abschnitt verbringen. Benutzer interagieren mit Leser/Schreiber-Sperren über die Solaris-Schnittstelle rwlock(3C) oder die POSIX-Schnittstelle pthread_rwlock_init(3C).

Tabelle 31–2 zeigt die Prüfpunkte für Leser/Schreiber-Sperren. arg0 enthält für jeden Prüfpunkt einen Zeiger auf die Struktur rwlock_t oder pthread_rwlock_t (identische Typen), die die adaptive Sperre darstellen. arg1 enthält einen booleschen Wert, aus dem hervorgeht, ob es sich bei der Operation um einen Schreiber handelt.

Tabelle 31–2 Prüfpunkte für Leser/Schreiber-Sperren

rw-acquire

Hold-event-Prüfpunkt, der unmittelbar nach dem Erlangen einer Leser/Schreiber-Sperre ausgelöst wird. 

rw-block

Contention-event-Prüfpunkt, der ausgelöst wird, bevor ein Thread in dem Versuch, eine Sperre zu erlangen, blockiert wird. Wenn sie aktiviert sind, werden die Prüfpunkte rw-acquire und rw-error nach rw-block ausgelöst.

rw-release

Hold-event-Prüfpunkt, der unmittelbar nach der Freigabe einer Leser/Schreiber-Sperre ausgelöst wird. 

rw-error

Fehlerereignis-Prüfpunkt, der bei Fehlern während einer Operation mit einer Leser/Schreiber-Sperre ausgelöst wird. arg1 ist der errno-Wert des aufgetretenen Fehlers.