summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorantirez <antirez@gmail.com>2019-11-19 17:24:30 +0100
committerantirez <antirez@gmail.com>2019-11-19 17:24:30 +0100
commitd3eeacf93d750c3b1a2a0b21247c0935e06b5ec5 (patch)
tree6a0bdb295faf6ce2fa73830d062b5c63dcd83aa4
parentda5dc4583fc848cfa9f76edb3406fff652a4f50b (diff)
parent09f9e4b03051f1b40e968c4f8727b3029a084ce6 (diff)
downloadredis-d3eeacf93d750c3b1a2a0b21247c0935e06b5ec5.tar.gz
Merge branch '5.0' of github.com:/antirez/redis into 5.0
-rw-r--r--src/module.c5
-rw-r--r--src/server.c5
-rw-r--r--src/server.h1
3 files changed, 11 insertions, 0 deletions
diff --git a/src/module.c b/src/module.c
index 12b30d215..dd323e823 100644
--- a/src/module.c
+++ b/src/module.c
@@ -1518,6 +1518,8 @@ int RM_GetSelectedDb(RedisModuleCtx *ctx) {
* * REDISMODULE_CTX_FLAGS_OOM_WARNING: Less than 25% of memory remains before
* reaching the maxmemory level.
*
+ * * REDISMODULE_CTX_FLAGS_LOADING: Server is loading RDB/AOF
+ *
* * REDISMODULE_CTX_FLAGS_REPLICA_IS_STALE: No active link with the master.
*
* * REDISMODULE_CTX_FLAGS_REPLICA_IS_CONNECTING: The replica is trying to
@@ -1596,6 +1598,9 @@ int RM_GetContextFlags(RedisModuleCtx *ctx) {
if (retval == C_ERR) flags |= REDISMODULE_CTX_FLAGS_OOM;
if (level > 0.75) flags |= REDISMODULE_CTX_FLAGS_OOM_WARNING;
+ /* Presence of children processes. */
+ if (hasActiveChildProcess()) flags |= REDISMODULE_CTX_FLAGS_ACTIVE_CHILD;
+
return flags;
}
diff --git a/src/server.c b/src/server.c
index ff43a76dc..f7fb4f882 100644
--- a/src/server.c
+++ b/src/server.c
@@ -779,6 +779,11 @@ void updateDictResizePolicy(void) {
dictDisableResize();
}
+int hasActiveChildProcess() {
+ return server.rdb_child_pid != -1 ||
+ server.aof_child_pid != -1;
+}
+
/* ======================= Cron: called every 100 ms ======================== */
/* Add a sample to the operations per second array of samples. */
diff --git a/src/server.h b/src/server.h
index 94b76abb7..f74e8f2f6 100644
--- a/src/server.h
+++ b/src/server.h
@@ -1653,6 +1653,7 @@ void openChildInfoPipe(void);
void closeChildInfoPipe(void);
void sendChildInfo(int process_type);
void receiveChildInfo(void);
+int hasActiveChildProcess();
/* Sorted sets data type */