Description
This makes the usage of `lcb_sched_enter()` and `lcb_sched_leave()` optional. These APIs are there mainly to support the 'all-or-nothing' scheduling semantics of the V2 API and the Python SDK, both of which support so-called "multi" operations.
Upon the advice of Brett Lawson, the behavior has now been extended so that when an operation is added to the pending/spooling queue, it will be transferred to the request queue if a previous call to `lcb_sched_enter()` is not active. If a current call to `lcb_sched_enter()` is active then the request is only placed in the queue when `lcb_sched_leave()` is called.
This allows simple idioms like
lcb_CMDGET gcmd = { 0 };
|
LCB_CMD_SET_KEY(&gcmd, "key", 3);
|
lcb_get3(instance, NULL, &gcmd);
|
lcb_wait(instance);
|
Attachments
For Gerrit Dashboard: CCBC-664 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
59050,2 | CCBC-664: lcb_sched_enter/leave calls are optional | master | libcouchbase | Status: MERGED | +2 | +1 |