Hi,

    I'm new to C API lib. I accidentally use single-thread lib (i.e. libzkst.a) and it took me quit a while before I realize all sync functions in the libzkst.a is not usable at all. I'm wondering why not just disable them in libztst.a. It would otherwise be pretty confusing and error-prone.

   Take zoo_get_children() as an example, it always return ZOK, and 0 children.  This function in turn calls zoo_wget_children_() which is excerpted bellow. The wait_sync_completion() at line 3657 actually does nothing in the single-thread version, meaning this function simply return to the caller without waiting for the job done.

Thanks

Shuxin


--------------------------------------------------------------

3646 static int zoo_wget_children_(...)

3650     struct sync_completion *sc = alloc_sync_completion();

....

3655     rc= zoo_awget_children (zh, path, watcher, watcherCtx, SYNCHRONOUS_MARKER, sc);
3656 if(rc==ZOK){
3657 wait_sync_completion(sc);
3658         rc = sc->rc;
3659         if (rc == 0) {
3660             if (strings) {
3661                 *strings = sc->u.strs2;
3662             } else {
3663 deallocate_String_vector(&sc->u.strs2);
3664 }
3665 }
3666 }
3667 free_sync_completion(sc);
3668     return rc;
3669 }

----------------------------------------------------------------


Reply via email to