Consider this code:
public synchronized void onSignalsTimeout(List specs) { if (specs != null && specs.size() > 0) {
In this context, synchronized simultaneously locks this method and any other method similarly marked as synchronized in your class.
synchronized