@Override
 public void onComplete() {
   if (once) {
     return;
   }
   once = true;
   parent.next();
 }
 @Override
 public void onError(Throwable t) {
   if (once) {
     RxJavaPlugins.onError(t);
     return;
   }
   once = true;
   parent.onError(t);
 }
 @Override
 public void onNext(B t) {
   if (once) {
     return;
   }
   once = true;
   cancel();
   parent.next();
 }