public void performBackgroundOperation()

in curator-framework/src/main/java/org/apache/curator/framework/imps/AddWatchBuilderImpl.java [128:191]


    public void performBackgroundOperation(final OperationAndData<String> data) throws Exception {
        String path = data.getData();
        String fixedPath = client.fixForNamespace(path);
        try {
            final OperationTrace trace =
                    client.getZookeeperClient().startAdvancedTracer("AddWatchBuilderImpl-Background");
            if (watching.isWatched()) {
                client.getZooKeeper()
                        .addWatch(
                                fixedPath,
                                mode,
                                (rc, path1, ctx) -> {
                                    trace.setReturnCode(rc)
                                            .setWithWatcher(true)
                                            .setPath(path1)
                                            .commit();
                                    CuratorEvent event = new CuratorEventImpl(
                                            client,
                                            CuratorEventType.ADD_WATCH,
                                            rc,
                                            path1,
                                            null,
                                            ctx,
                                            null,
                                            null,
                                            null,
                                            null,
                                            null,
                                            null);
                                    client.processBackgroundOperation(data, event);
                                },
                                backgrounding.getContext());
            } else {
                client.getZooKeeper()
                        .addWatch(
                                fixedPath,
                                watching.getWatcher(path),
                                mode,
                                (rc, path1, ctx) -> {
                                    trace.setReturnCode(rc)
                                            .setWithWatcher(true)
                                            .setPath(path1)
                                            .commit();
                                    CuratorEvent event = new CuratorEventImpl(
                                            client,
                                            CuratorEventType.ADD_WATCH,
                                            rc,
                                            path1,
                                            null,
                                            ctx,
                                            null,
                                            null,
                                            null,
                                            null,
                                            null,
                                            null);
                                    client.processBackgroundOperation(data, event);
                                },
                                backgrounding.getContext());
            }
        } catch (Throwable e) {
            backgrounding.checkError(e, watching);
        }
    }