title: How does zookeeper call complete function in asynchronous APIs
body: <p>I found some callback signature such as <code>data_completion_t</code>, <code>string_completion_t</code>. But I wonder how zookeeper call those functions in asynchronous APIs. </p>
  
  <p>Does it use a single thread to receive response from zookeeper? So I have to add mutex to protect <code>user_data</code> in callback. Or does it check callbacks every time another asyn API has been called?</p>