/** * Dispatches a resume event. By default, if the resume is for an evaluation * or a step, a timer is started to update the event source if the step or * evaluation takes more than 500ms. Otherwise the source is refreshed. * Subclasses may override. * * @param event */ protected void dispatchResume(DebugEventHandler handler, DebugEvent event) { if (event.isEvaluation() || event.isStepStart()) { // start a timer to update if the corresponding suspend does not // come quickly synchronized (this) { if (!isDisposed()) { PendingSuspendTask task = new PendingSuspendTask(handler, event); fTimerTasks.put(event.getSource(), task); fTimer.schedule(task, 500); } } if (!isDisposed()) { handler.handleResumeExpectingSuspend(event); } } else { handler.handleResume(event); } }