Commit 89e11486 authored by zhenwei pi's avatar zhenwei pi
Browse files

Introduce redis module ctx flag 'server startup'



A module may be loaded only during initial stage, a typical case is
connection type shared library.

Introduce REDISMODULE_CTX_FLAGS_SERVER_STARTUP context flag
to tell the module the stage of Redis. Then the module gets the flag
by RedisModule_GetContextFlags(ctx), tests flags and returns error in
onload handler.
Suggested-by: default avatarOran Agra <oran@redislabs.com>
Signed-off-by: default avatarzhenwei pi <pizhenwei@bytedance.com>
parent 8a59c193
......@@ -3531,8 +3531,6 @@ int RM_GetSelectedDb(RedisModuleCtx *ctx) {
* context is using RESP3.
*
* * REDISMODULE_CTX_FLAGS_SERVER_STARTUP: The Redis instance is starting
*
* * REDISMODULE_CTX_FLAGS_SENTINEL: The Redis instance is in sentinel mode
*/
int RM_GetContextFlags(RedisModuleCtx *ctx) {
int flags = 0;
......@@ -3622,9 +3620,6 @@ int RM_GetContextFlags(RedisModuleCtx *ctx) {
if (listLength(server.loadmodule_queue) > 0)
flags |= REDISMODULE_CTX_FLAGS_SERVER_STARTUP;
 
if (server.sentinel_mode)
flags |= REDISMODULE_CTX_FLAGS_SENTINEL;
return flags;
}
 
......
......@@ -164,13 +164,11 @@ typedef struct RedisModuleStreamID {
#define REDISMODULE_CTX_FLAGS_ASYNC_LOADING (1<<23)
/* Redis is starting. */
#define REDISMODULE_CTX_FLAGS_SERVER_STARTUP (1<<24)
/* The instance is running in sentinel mode */
#define REDISMODULE_CTX_FLAGS_SENTINEL (1<<25)
/* Next context flag, must be updated when adding new flags above!
This flag should not be used directly by the module.
* Use RedisModule_GetContextFlagsAll instead. */
#define _REDISMODULE_CTX_FLAGS_NEXT (1<<26)
#define _REDISMODULE_CTX_FLAGS_NEXT (1<<25)
/* Keyspace changes notification classes. Every class is associated with a
* character for configuration purposes.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment