/* * This file is part of the Jikes RVM project (http://jikesrvm.org). * * This file is licensed to You under the Eclipse Public License (EPL); * You may not use this file except in compliance with the License. You * may obtain a copy of the License at * * http://www.opensource.org/licenses/eclipse-1.0.php * * See the COPYRIGHT.txt file distributed with this work for information * regarding copyright ownership. */ package test.org.jikesrvm.basic.core.threads; class Mailbox { final String[] messages; int received; Mailbox(int max) { messages = new String[max]; } // Add a message to this mailbox. // synchronized void send(String message) { messages[received++] = message; if (received == messages.length) { XThread.say("mailbox: notification sent to tell main that mailbox is full"); notify(); } } // Wait for this mailbox to fill up. // synchronized void await() { if (received != messages.length) { try { wait(); } catch (InterruptedException e) {} } XThread.say("mailbox: notification received"); } }