Use signal instead of signalAll