Reader/write locks permit multiple readers or a single writer, but not both, to be in a critical section at one time. These locks are typically used for structures that are searched more frequently than they are modified, or when threads spend substantial time in a critical section. Users interact with reader/writer locks using the Solaris rwlock(3C) or POSIX pthread_rwlock_init(3C) interfaces.
The probes pertaining to readers/writer locks are in Table 31–2. For each probe, arg0 contains a pointer to the rwlock_t or pthread_rwlock_tstructure (these are identical types) that represents the adaptive lock. arg1 contains a boolean value that indicates whether the operation was as a writer.
Table 31–2 Readers/Writer Lock Probes
rw-acquire |
Hold event probe that fires immediately after a readers/writer lock is acquired. |
rw-block |
Contention event probe that fires before a thread blocks while attempting to acquire a lock. If enabled, the rw-acquire probe or the rw-error probe will fire after rw-block. |
rw-release |
Hold event probe that fires immediately after a reader/writer lock is released |
rw-error |
Error event probe that fires when an error is encountered during a reader/writer lock operation. arg1 is the errno value of the error encountered. |