ENGINE_ERROR_CODE arithmetic(struct default_engine *engine, const void* cookie, const void* key, const int nkey, const bool increment, const bool create, const uint64_t delta, const uint64_t initial, const rel_time_t exptime, item **item, uint8_t datatype, uint64_t *result) { ENGINE_ERROR_CODE ret; hash_key hkey; if (!hash_key_create(&hkey, key, nkey, engine, cookie)) { return ENGINE_ENOMEM; } cb_mutex_enter(&engine->items.lock); ret = do_arithmetic(engine, cookie, &hkey, increment, create, delta, initial, exptime, item, datatype, result); cb_mutex_exit(&engine->items.lock); hash_key_destroy(&hkey); return ret; }
ENGINE_ERROR_CODE arithmetic(struct default_engine *engine, const void* cookie, const void* key, const int nkey, const bool increment, const bool create, const uint64_t delta, const uint64_t initial, const rel_time_t exptime, uint64_t *cas, uint64_t *result) { ENGINE_ERROR_CODE ret; pthread_mutex_lock(&engine->cache_lock); ret = do_arithmetic(engine, cookie, key, nkey, increment, create, delta, initial, exptime, cas, result); pthread_mutex_unlock(&engine->cache_lock); return ret; }