finish nachos.threads.Communicator with condition variables