protected void signal() {
   condition.signalAll();
   if (callback != null) callback.run();
 }