code: final void orpush(CompletableFuture<?> b, BiCompletion<?,?,?> c) {
          if (c != null) {
              while ((b == null || b.result == null) && result == null) {
                  if (tryPushStack(c)) {
                      if (b != null && b != this && b.result == null) {
                          Completion q = new CoCompletion(c);
                          while (result == null && b.result == null &&
                                 !b.tryPushStack(q))
                              lazySetNext(q, null); // clear on failure
                      }
                      break;
                  }
                  lazySetNext(c, null); // clear on failure
              }
          }
      }
docs: Pushes completion to this and b unless either done.