Manuel de suivi dynamique Solaris

Création d'une spéculation

La fonction speculation() alloue un tampon spéculatif et renvoie un identificateur de spéculation. L'identificateur de spéculation doit être utilisé dans les appels ultérieurs vers la fonction speculate. () Les tampons spéculatifs constituent une ressource infinie : Si aucun tampon spéculatif n'est disponible lorsque la fonction speculation() est appelée, un ID de zéro est retourné et un compteur d'erreur correspondant de DTrace est incrémenté. Un ID de zéro est toujours invalide mais il peut être transmis à une fonction speculate(), commit() ou discard(). Si une fonction speculation() échoue, un message dtrace similaire à l'exemple suivant est généré :


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

Le nombre de tampons spéculatifs par défaut est de 1 mais ce chiffre peut éventuellement être plus élevé. Pour plus d'informations, reportez-vous à la section Options de spéculation et réglage.