Guia de rastreamento dinâmico Solaris

Criando uma especulação

A função speculation() aloca um buffer especulativo e retorna um identificador de especulação. O identificador de especulação deve ser usado em chamadas subseqüentes à função speculate. () Os buffers especulativos são um recurso finito: Se nenhum buffer especulativo estiver disponível quando speculation() for chamada, um ID zero será retornado e um contador de erro do DTrace correspondente será incrementado. Um ID zero é sempre inválido, mas pode ser passado para speculate(), commit() ou discard(). Se uma chamada a speculation() falhar, uma mensagem do dtrace semelhante ao exemplo seguinte será gerada:


dtrace: 2 failed speculations (no speculative buffer space available)

O número de buffers especulativos é um como padrão, mas pode ser opcionalmente ajustado para mais. Consulte Opções e ajuste de especulação para obter mais informações.