MCPcopy Create free account
hub / github.com/traneio/future / safeFlush

Method safeFlush

future-java/src/main/java/io/trane/future/Promise.java:267–283  ·  view source on GitHub ↗
(final Future<T> result)

Source from the content-addressed store, hash-verified

265 }
266
267 @SuppressWarnings("unchecked")
268 protected final WaitQueue<T> safeFlush(final Future<T> result) {
269 while (true) {
270 final Object curr = state;
271 if (curr instanceof Promise && !(curr instanceof Continuation))
272 return ((Promise<T>) curr).safeFlush(result);
273 else if (curr instanceof LinkedContinuation)
274 return ((LinkedContinuation<?, T>) curr).safeFlush(result);
275 else if (curr instanceof SatisfiedFuture)
276 return null;
277 else if (result instanceof Promise) {
278 ((Promise<T>) result).compress().link(this);
279 return null;
280 } else if (cas(curr, result))
281 return (WaitQueue<T>) curr;
282 }
283 }
284
285 @SuppressWarnings("unchecked")
286 private final void link(final Promise<T> target) {

Callers 2

flushMethod · 0.45
safeFlushMethod · 0.45

Calls 3

casMethod · 0.95
linkMethod · 0.80
compressMethod · 0.80

Tested by

no test coverage detected