@Override
 public <T> T execute(
     final Callable<T> task,
     final Runnable taskSuc,
     final Runnable taskFail,
     final Runnable taskCancel,
     boolean isUrgent) {
   EspDeviceStateMachineExecutor executor = EspDeviceStateMachineExecutor.getInstance();
   return executor.execute(task, taskSuc, taskFail, taskCancel, isUrgent);
 }
 @Override
 public void submit(boolean isUrgent) {
   EspDeviceStateMachineExecutor executor = EspDeviceStateMachineExecutor.getInstance();
   synchronized (this.mFutureLock) {
     if (this.mCallable != null) {
       this.mFuture = executor.submit(this.mCallable, isUrgent);
     }
     if (this.mRunnable != null) {
       this.mFuture = executor.submit(mRunnable, isUrgent);
     }
   }
 }