diff --git a/META.json b/META.json index be9d27d..7975cb2 100644 --- a/META.json +++ b/META.json @@ -4,7 +4,7 @@ "plainbanana " ], "dynamic_config" : 0, - "generated_by" : "Minilla/v3.1.22, CPAN::Meta::Converter version 2.150005", + "generated_by" : "Minilla/v3.1.23, CPAN::Meta::Converter version 2.150005", "license" : [ "perl_5" ], diff --git a/deps/hiredis-cluster b/deps/hiredis-cluster index 0a4deb6..d92edb8 160000 --- a/deps/hiredis-cluster +++ b/deps/hiredis-cluster @@ -1 +1 @@ -Subproject commit 0a4deb6ea78cb0b8008288346868a99d29d404d8 +Subproject commit d92edb8ac58d1279f5015715947f7ade61daca72 diff --git a/src/Fast.xs b/src/Fast.xs index c3903ee..fa95ffc 100644 --- a/src/Fast.xs +++ b/src/Fast.xs @@ -233,6 +233,17 @@ void Redis__Cluster__Fast_run_cmd(pTHX_ Redis__Cluster__Fast self, int argc, con return; } redisClusterAsyncDisconnect(self->acc); + + if (event_base_dispatch(self->cluster_event_base) == -1) { + reply_t->error = newSVpvf("%s", "event_base_dispatch failed after forking"); + return; + } + + if (redisClusterConnect2(self->acc->cc) != REDIS_OK) { + reply_t->error = newSVpvf("failed to re-connect: %s", self->acc->cc->errstr); + return; + } + self->pid = current_pid; }