in process_snoop_resp of simple_initiator_b, the following check if ( snp.trywait() <0 ) ... blocks simualiton. Instead , snp semaphore should be checked with if (snp.get_value ()== 0) ... then use snp.wait() to take the semaphore. then simulation can continue