Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 789256d

Browse files
committed
Issue #1492
1 parent e98f511 commit 789256d

1 file changed

Lines changed: 16 additions & 3 deletions

File tree

redis.c

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2298,6 +2298,7 @@ PHP_METHOD(Redis, multi)
22982298
/* discard */
22992299
PHP_METHOD(Redis, discard)
23002300
{
2301+
int ret = FAILURE;
23012302
RedisSock *redis_sock;
23022303
zval *object;
23032304

@@ -2310,9 +2311,21 @@ PHP_METHOD(Redis, discard)
23102311
RETURN_FALSE;
23112312
}
23122313

2313-
redis_sock->mode = ATOMIC;
2314-
free_reply_callbacks(redis_sock);
2315-
RETURN_BOOL(redis_send_discard(redis_sock TSRMLS_CC) == SUCCESS);
2314+
if (IS_PIPELINE(redis_sock)) {
2315+
ret = SUCCESS;
2316+
if (redis_sock->pipeline_cmd) {
2317+
zend_string_release(redis_sock->pipeline_cmd);
2318+
redis_sock->pipeline_cmd = NULL;
2319+
}
2320+
} else if (IS_MULTI(redis_sock)) {
2321+
ret = redis_send_discard(redis_sock TSRMLS_CC);
2322+
}
2323+
if (ret == SUCCESS) {
2324+
free_reply_callbacks(redis_sock);
2325+
redis_sock->mode = ATOMIC;
2326+
RETURN_TRUE;
2327+
}
2328+
RETURN_FALSE;
23162329
}
23172330

23182331
/* redis_sock_read_multibulk_multi_reply */

0 commit comments

Comments
 (0)