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