You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@curator.apache.org by ra...@apache.org on 2018/12/17 03:26:08 UTC
[2/3] curator git commit: CURATOR-495 - have methods return a
CompletableFuture so that callers can check completion, etc.
CURATOR-495 - have methods return a CompletableFuture so that callers can check completion, etc.
Project: http://git-wip-us.apache.org/repos/asf/curator/repo
Commit: http://git-wip-us.apache.org/repos/asf/curator/commit/4fa5c1d4
Tree: http://git-wip-us.apache.org/repos/asf/curator/tree/4fa5c1d4
Diff: http://git-wip-us.apache.org/repos/asf/curator/diff/4fa5c1d4
Branch: refs/heads/master
Commit: 4fa5c1d4d2e0d344db21c52c61e305836ea1bde5
Parents: f91adb2
Author: randgalt <ra...@apache.org>
Authored: Fri Dec 14 14:20:12 2018 -0500
Committer: randgalt <ra...@apache.org>
Committed: Fri Dec 14 14:20:12 2018 -0500
----------------------------------------------------------------------
.../apache/curator/framework/CuratorFramework.java | 9 ++++++---
.../curator/framework/imps/CuratorFrameworkImpl.java | 14 +++-----------
2 files changed, 9 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/curator/blob/4fa5c1d4/curator-framework/src/main/java/org/apache/curator/framework/CuratorFramework.java
----------------------------------------------------------------------
diff --git a/curator-framework/src/main/java/org/apache/curator/framework/CuratorFramework.java b/curator-framework/src/main/java/org/apache/curator/framework/CuratorFramework.java
index 02c458a..3737faa 100644
--- a/curator-framework/src/main/java/org/apache/curator/framework/CuratorFramework.java
+++ b/curator-framework/src/main/java/org/apache/curator/framework/CuratorFramework.java
@@ -34,6 +34,7 @@ import org.apache.curator.utils.EnsurePath;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.server.quorum.flexible.QuorumVerifier;
import java.io.Closeable;
+import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit;
/**
@@ -335,11 +336,12 @@ public interface CuratorFramework extends Closeable
* done from the {@link #runSafe(Runnable)} thread.
*
* @param monitorHolder object to sync on and notify
+ * @return a CompletableFuture that can be used to monitor when the call is complete
* @since 4.1.0
*/
- default void postSafeNotify(Object monitorHolder)
+ default CompletableFuture<Void> postSafeNotify(Object monitorHolder)
{
- runSafe(() -> {
+ return runSafe(() -> {
synchronized(monitorHolder) {
monitorHolder.notifyAll();
}
@@ -351,7 +353,8 @@ public interface CuratorFramework extends Closeable
* and other blocking calls that might normally block ZooKeeper's event thread.
* @param runnable proc to call from a safe internal thread
+ * @return a CompletableFuture that can be used to monitor when the call is complete
* @since 4.1.0
*/
- void runSafe(Runnable runnable);
+ CompletableFuture<Void> runSafe(Runnable runnable);
}
http://git-wip-us.apache.org/repos/asf/curator/blob/4fa5c1d4/curator-framework/src/main/java/org/apache/curator/framework/imps/CuratorFrameworkImpl.java
----------------------------------------------------------------------
diff --git a/curator-framework/src/main/java/org/apache/curator/framework/imps/CuratorFrameworkImpl.java b/curator-framework/src/main/java/org/apache/curator/framework/imps/CuratorFrameworkImpl.java
index 34002a0..736b737 100644
--- a/curator-framework/src/main/java/org/apache/curator/framework/imps/CuratorFrameworkImpl.java
+++ b/curator-framework/src/main/java/org/apache/curator/framework/imps/CuratorFrameworkImpl.java
@@ -58,15 +58,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
-import java.util.concurrent.BlockingQueue;
-import java.util.concurrent.Callable;
-import java.util.concurrent.DelayQueue;
-import java.util.concurrent.Executor;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.LinkedBlockingQueue;
-import java.util.concurrent.ThreadFactory;
-import java.util.concurrent.TimeUnit;
+import java.util.concurrent.*;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicLong;
import java.util.concurrent.atomic.AtomicReference;
@@ -194,9 +186,9 @@ public class CuratorFrameworkImpl implements CuratorFramework
}
@Override
- public void runSafe(Runnable runnable)
+ public CompletableFuture<Void> runSafe(Runnable runnable)
{
- runSafeService.execute(runnable);
+ return CompletableFuture.runAsync(runnable, runSafeService);
}
@Override