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
            }
        }
    }
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 ) ; } break ; } lazySetNext ( c , null ) ; } } }
Pushes completion to this and b unless either done.