package ch.retorte.intervalmusiccompositor.util;
import ch.retorte.intervalmusiccompositor.messagebus.DebugMessage;
import ch.retorte.intervalmusiccompositor.spi.messagebus.MessageProducer;
/**
* @author nw
*/
public class ThreadHelper {
private MessageProducer messageProducer;
public ThreadHelper(MessageProducer messageProducer) {
this.messageProducer = messageProducer;
}
public void sleep(long millis) {
try {
Thread.sleep(millis);
} catch (InterruptedException e) {
addDebugMessage(e.getMessage());
}
}
public void wait(Runnable t) {
try {
synchronized (t) {
t.wait();
}
}
catch (InterruptedException e) {
addDebugMessage(e.getMessage());
}
}
public void notify(Runnable t) {
try {
synchronized (t) {
t.notify();
}
}
catch (IllegalMonitorStateException e) {
addDebugMessage(e.getMessage());
}
}
private void addDebugMessage(String message) {
messageProducer.send(new DebugMessage(this, message));
}
}