Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/phpredis/phpredis.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Favre-Felix <n.favrefelix@gmail.com>2011-11-27 23:57:39 +0400
committerNicolas Favre-Felix <n.favrefelix@gmail.com>2011-11-27 23:57:39 +0400
commit7781557bb1c09584d47b9132015688810da1514d (patch)
tree1b3d9fe789e044354aece8414f8a743218d0dcd8 /redis_array.c
parent1ce8bcc5340bcf928ccca72a043ec0c44a4e19ac (diff)
Added missing UNWATCH.
Possibly resolves GitHub issue #86 (TBC).
Diffstat (limited to 'redis_array.c')
-rw-r--r--redis_array.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/redis_array.c b/redis_array.c
index cf67cfe2..e1955735 100644
--- a/redis_array.c
+++ b/redis_array.c
@@ -61,6 +61,7 @@ zend_function_entry redis_array_functions[] = {
PHP_ME(RedisArray, multi, NULL, ZEND_ACC_PUBLIC)
PHP_ME(RedisArray, exec, NULL, ZEND_ACC_PUBLIC)
PHP_ME(RedisArray, discard, NULL, ZEND_ACC_PUBLIC)
+ PHP_ME(RedisArray, unwatch, NULL, ZEND_ACC_PUBLIC)
/* Aliases */
PHP_MALIAS(RedisArray, delete, del, NULL, ZEND_ACC_PUBLIC)
@@ -1049,3 +1050,21 @@ PHP_METHOD(RedisArray, discard)
/* remove multi object */
ra->z_multi_exec = NULL;
}
+
+PHP_METHOD(RedisArray, unwatch)
+{
+ zval *object;
+ RedisArray *ra;
+
+ if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O",
+ &object, redis_array_ce) == FAILURE) {
+ RETURN_FALSE;
+ }
+
+ if (redis_array_get(object, &ra TSRMLS_CC) < 0 || !ra->z_multi_exec) {
+ RETURN_FALSE;
+ }
+
+ /* unwatch keys, stay in multi/exec mode. */
+ ra_index_unwatch(ra->z_multi_exec, return_value TSRMLS_CC);
+}