You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@zookeeper.apache.org by "Patrick Hunt (JIRA)" <ji...@apache.org> on 2016/11/09 18:49:59 UTC

[jira] [Commented] (ZOOKEEPER-761) Remove *synchronous* calls from the *single-threaded* C clieant API, since they are documented not to work

    [ https://issues.apache.org/jira/browse/ZOOKEEPER-761?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15651712#comment-15651712 ] 

Patrick Hunt commented on ZOOKEEPER-761:
----------------------------------------

bq. we should deprecate the single threaded API altogether. what do others think?

I know of a number of users who use the single thread apis, they provide flexibility for integrating into third party code that may or may not be able to use threads (for whatever reason).

> 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: Benjamin Reed
>            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)