From 8b7c404e58dac269d19b842e9434dfe005594eda Mon Sep 17 00:00:00 2001 From: Robert Roeser Date: Wed, 30 Mar 2016 09:04:01 -0700 Subject: [PATCH] on ReactiveSocket.call default method with a timeout switched to compareAndSet --- src/main/java/io/reactivesocket/ReactiveSocketFactory.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/main/java/io/reactivesocket/ReactiveSocketFactory.java b/src/main/java/io/reactivesocket/ReactiveSocketFactory.java index 08a8445a7..79fb6ceec 100644 --- a/src/main/java/io/reactivesocket/ReactiveSocketFactory.java +++ b/src/main/java/io/reactivesocket/ReactiveSocketFactory.java @@ -104,16 +104,14 @@ public void onError(Throwable t) { @Override public void onComplete() { - if (!complete.get()) { - complete.set(true); + if (complete.compareAndSet(false, true)) { subscriber.onComplete(); } } }); executorService.schedule(() -> { - if (!complete.get()) { - complete.set(true); + if (complete.compareAndSet(false, true)) { subscriber.onError(new TimeoutException()); } }, timeout, timeUnit);