protected void search(boolean persistent, boolean async) { try { synchronized (this) { if (current_search == null) { current_search = new Searcher(persistent, async); } else { if (!current_search.wakeup()) { current_search = new Searcher(persistent, async); } } } } catch (Throwable e) { Debug.out(e); } }