diff --git a/ep_extension.cc b/ep_extension.cc index 335b1fe..c802045 100644 --- a/ep_extension.cc +++ b/ep_extension.cc @@ -176,7 +176,7 @@ bool GetlExtension::executeGetl(int argc, token_t *argv, void *response_cookie, // TODO: Get vbucket ID here. bool gotLock = backend->getLocked(k, 0, getCb, serverApi->core->get_current_time(), - lockTimeout, NULL); + lockTimeout, response_cookie); Item *item = NULL; bool ret = true; @@ -200,7 +200,10 @@ bool GetlExtension::executeGetl(int argc, token_t *argv, void *response_cookie, item->getData()) && response_handler(response_cookie, 7, "\r\nEND\r\n"); - } else if (!gotLock || rv == ENGINE_EWOULDBLOCK) { + } else if (ENGINE_EWOULDBLOCK == rv) { + ret = response_handler(response_cookie, + sizeof("EWOULDBLOCK\r\n") - 1, "EWOULDBLOCK\r\n"); + } else if (!gotLock) { ret = response_handler(response_cookie, sizeof("LOCK_ERROR\r\n") - 1, "LOCK_ERROR\r\n"); } else {