Solaris 动态跟踪指南

读取器/写入器锁定探测器

读取器/写入器锁定允许临界段中一次有多个读取器一个写入器,但不允许二者同时存在。这些锁定通常用于搜索操作比修改操作更频繁或线程在临界段中花费大量时间的结构。用户使用 Solaris rwlock(3C) 或 POSIX pthread_rwlock_init(3C) 接口与读取器/写入器锁定交互。

表 31–2 中介绍了与读取器/写入器锁定有关的探测器。对于每一个探测器,arg0 包含指向代表自适应锁定的 rwlock_tpthread_rwlock_t 结构(这些结构的类型相同)的指针。arg1 包含布尔值,用于指示操作是否作为写入器。

表 31–2 读取器/写入器锁定探测器

rw-acquire

获取读取器/写入器锁定之后将立即触发的暂挂事件探测器。 

rw-block

尝试获取锁定时,在线程阻塞之前将触发的争用事件探测器。如果启用该探测器,rw-acquire 探测器或 rw-error 探测器将在 rw-block 之后触发。

rw-release

释放读取器/写入器锁定之后将立即触发的暂挂事件探测器。 

rw-error

读取器/写入器锁定操作期间遇到错误时将触发的错误事件探测器。arg1 是遇到的错误的 errno 值。