Guia de rastreamento dinâmico Solaris

Testes de bloqueio de leitor/gravador

Os bloqueios de leitor/gravador permitem que vários leitores ou um único gravador, mas não ambos, existam em uma seção crítica de cada vez. Esses bloqueios são geralmente usados para estruturas que são pesquisadas mais freqüentemente do que modificadas, ou quando os segmentos gastam tempo substancial em uma seção crítica. Os usuários interagem com bloqueios de leitor/gravador usando as interfaces rwlock(3C) ou POSIX pthread_rwlock_init(3C) do Solaris .

Os testes que pertencem aos bloqueios de leitores/gravador estão na Tabela 31–2. Para cada teste, arg0 contém um ponteiro para a estrutura rwlock_t ou pthread_rwlock_t(estes são tipos idênticos) que representa o bloqueio adaptativo. arg1 contém um valor booleano que indica se a operação foi um gravador.

Tabela 31–2 Testes de bloqueio de leitores/gravador

rw-acquire

Teste de evento de manutenção que é acionado imediatamente depois que um bloqueio de leitores/gravador é adquirido. 

rw-block

Teste de evento de contenção que é acionado antes que um segmento seja bloqueado ao tentar adquirir um bloqueio. Se ativado, o teste rw-acquire ou o teste rw-error será acionado depois de rw-block.

rw-release

Teste de evento de manutenção que é acionado imediatamente depois que um bloqueio de leitor/gravador é liberado 

rw-error

Teste de evento de erro que é acionado quando um erro é encontrado durante uma operação de bloqueio de leitor/gravador. arg1 é o valor errno do erro encontrado.