[
https://issues.apache.org/jira/browse/ZOOKEEPER-761?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15592526#comment-15592526
]
ASF GitHub Bot commented on ZOOKEEPER-761:
------------------------------------------
GitHub user breed opened a pull request:
https://github.com/apache/zookeeper/pull/90
ZOOKEEPER-761: Remove *synchronous* calls from the *single-threaded* C
client API
the synchronous calls from a single-threaded client do not work. this patch
makes using them in a single-threaded client a compilation error.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/breed/zookeeper ZOOKEEPER-761
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/zookeeper/pull/90.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #90
----
commit af047777dd6fc0b74ab723e6ce449c0e80cc73df
Author: Ben Reed <[email protected]>
Date: 2016-10-19T17:36:44Z
ZOOKEEPER-761: Remove *synchronous* calls from the *single-threaded* C
client API
the synchronous calls from a single-threaded client do not work. this patch
makes using them in a single-threaded client a compilation error.
----
> Remove *synchronous* calls from the *single-threaded* C clieant API, since
> they are documented not to work
> ----------------------------------------------------------------------------------------------------------
>
> Key: ZOOKEEPER-761
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-761
> Project: ZooKeeper
> Issue Type: Improvement
> Components: c client
> Affects Versions: 3.1.1, 3.2.2
> Environment: RHEL 4u8 (Linux). The issue is not OS-specific though.
> Reporter: Jozef Hatala
> Assignee: Pierre Habouzit
> Priority: Minor
> Fix For: 3.5.3, 3.6.0
>
> Attachments: fix-sync-apis-in-st-adaptor.patch,
> fix-sync-apis-in-st-adaptor.v2.patch
>
>
> Since the synchronous calls are
> [known|http://hadoop.apache.org/zookeeper/docs/current/zookeeperProgrammers.html#Using+the+C+Client]
> to be unimplemented in the single threaded version of the client library
> libzookeeper_st.so, I believe that it would be helpful towards users of the
> library if that information was also obvious from the header file.
> Anecdotally more than one of us here made the mistake of starting by using
> the synchronous calls with the single-threaded library, and we found
> ourselves debugging it. An early warning would have been greatly appreciated.
> 1. Could you please add warnings to the doxygen blocks of all synchronous
> calls saying that they are not available in the single-threaded API. This
> cannot be safely done with {{#ifdef THREADED}}, obviously, because the same
> header file is included whichever client library implementation one is
> compiling for.
> 2. Could you please bracket the implementation of all synchronous calls in
> zookeeper.c with {{#ifdef THREADED}} and {{#endif}}, so that those symbols
> are not present in libzookeeper_st.so?
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)