code: @Override
      public UberBucket readUber() throws TTIOException {
          Future<UberBucket> secondReturn = mService.submit(new Callable<UberBucket>() {
              @Override
              public UberBucket call() throws Exception {
                  return mSecondWriter.readUber();
              }
          });
          UberBucket returnVal = mFirstWriter.readUber();
          try {
              if (returnVal == null) {
                  return secondReturn.get();
              } else {
                  return returnVal;
              }
          } catch (ExecutionException | InterruptedException exc) {
              throw new TTIOException(exc);
          }
      }
docs: {@inheritDoc}