Oltre a rilevare le azioni bloccate, è possibile inviare una notifica al protocollo che indica che un'azione è bloccata. Insieme all'azione viene fornito un riferimento al thread del motore bloccato, consentendo in questo modo a un protocollo di inviare un messaggio al thread bloccato. In seguito alla notifica di un'azione bloccata, il protocollo può provare a eseguire di nuovo l'azione, terminarla e passare quindi all'azione successiva oppure terminare l'esecuzione dell'utente virtuale.
L'interfaccia IKAction fornisce il seguente metodo come punto di immissione per i protocolli per rispondere a una condizione di azione bloccata:
public void blocked(). Lo stato dell'oggetto KAction, una volta entrato in blocked(), è potenzialmente danneggiato. L'utente che scrive il protocollo deve quindi assumere che tutti o parte dei dati associati all'azione non siano sicuri. Inoltre, tutti i blocchi che sono stati conservati durante execute() sono stati rilasciati.
public long getBlockedTimeout()
Restituisce il valore di timeout dell'azione bloccata. Il valore predefinito è 0, che significa che il blocco viene applicato per un tempo indefinito
public WorkerThread getWorkerThread()
Restituisce il thread operativo del motore che esegue l'azione quando viene rilevato lo stato bloccato.
IEngine
L'interfaccia del motore di esecuzione di test delle prestazioni ha aggiunto public boolean createWorker(). Lo scopo di createWorker() è consentire al thread sentinella di monitorare gli utenti per aggiungere altri utenti in risposta agli utenti rimossi trovati durante l'esecuzione delle azioni bloccate.