From aa57481d8ce69938b20a2a7ea8ba06daadbc2dcd Mon Sep 17 00:00:00 2001 From: antirez Date: Thu, 15 Feb 2018 21:41:03 +0100 Subject: Remove non semantical spaces from module.c. --- src/module.c | 77 ++++++++++++++++++++++++++++-------------------------------- 1 file changed, 36 insertions(+), 41 deletions(-) diff --git a/src/module.c b/src/module.c index 96e65f0be..8eb3f8aa5 100644 --- a/src/module.c +++ b/src/module.c @@ -220,22 +220,25 @@ static pthread_mutex_t moduleGIL = PTHREAD_MUTEX_INITIALIZER; /* Function pointer type for keyspace event notification subscriptions from modules. */ typedef int (*RedisModuleNotificationFunc) (RedisModuleCtx *ctx, int type, const char *event, RedisModuleString *key); -/* Keyspace notification subscriber information. See RM_SubscribeToKeyspaceEvents */ +/* Keyspace notification subscriber information. + * See RM_SubscribeToKeyspaceEvents() for more information. */ typedef struct RedisModuleKeyspaceSubscriber { /* The module subscribed to the event */ - RedisModule *module; + RedisModule *module; /* Notification callback in the module*/ - RedisModuleNotificationFunc notify_callback; + RedisModuleNotificationFunc notify_callback; /* A bit mask of the events the module is interested in */ - int event_mask; - /* Active flag set on entry, to avoid reentrant subscribers calling themselves */ - int active; + int event_mask; + /* Active flag set on entry, to avoid reentrant subscribers + * calling themselves */ + int active; } RedisModuleKeyspaceSubscriber; /* The module keyspace notification subscribers list */ static list *moduleKeyspaceSubscribers; -/* Static client recycled for all notification clients, to avoid allocating per round. */ +/* Static client recycled for all notification clients, to avoid allocating + * per round. */ static client *moduleKeyspaceSubscribersClient; /* -------------------------------------------------------------------------- @@ -3696,18 +3699,18 @@ void moduleReleaseGIL(void) { * Module Keyspace Notifications API * -------------------------------------------------------------------------- */ -/* Subscribe to keyspace notifications. This is a low-level version of the +/* Subscribe to keyspace notifications. This is a low-level version of the * keyspace-notifications API. A module cand register callbacks to be notified - * when keyspce events occur. - * + * when keyspce events occur. + * * Notification events are filtered by their type (string events, set events, * etc), and the subsriber callback receives only events that match a specific - * mask of event types. - * + * mask of event types. + * * When subscribing to notifications with RedisModule_SubscribeToKeyspaceEvents * the module must provide an event type-mask, denoting the events the subscriber * is interested in. This can be an ORed mask of any of the following flags: - * + * * - REDISMODULE_NOTIFY_GENERIC: Generic commands like DEL, EXPIRE, RENAME * - REDISMODULE_NOTIFY_STRING: String events * - REDISMODULE_NOTIFY_LIST: List events @@ -3718,32 +3721,32 @@ void moduleReleaseGIL(void) { * - REDISMODULE_NOTIFY_EVICTED: Eviction events * - REDISMODULE_NOTIFY_STREAM: Stream events * - REDISMODULE_NOTIFY_ALL: All events - * + * * We do not distinguish between key events and keyspace events, and it is up - * to the module to filter the actions taken based on the key. - * + * to the module to filter the actions taken based on the key. + * * The subscriber signature is: - * - * int (*RedisModuleNotificationFunc) (RedisModuleCtx *ctx, int type, - * const char *event, + * + * int (*RedisModuleNotificationFunc) (RedisModuleCtx *ctx, int type, + * const char *event, * RedisModuleString *key); - * + * * `type` is the event type bit, that must match the mask given at registration * time. The event string is the actual command being executed, and key is the - * relevant Redis key. - * + * relevant Redis key. + * * Notification callback gets executed with a redis context that can not be * used to send anything to the client, and has the db number where the event * occured as its selected db number. - * - * Notice that it is not necessary to enable norifications in redis.conf for - * module notifications to work. - * + * + * Notice that it is not necessary to enable norifications in redis.conf for + * module notifications to work. + * * Warning: the notification callbacks are performed in a synchronous manner, - * so notification callbacks must to be fast, or they would slow Redis down. + * so notification callbacks must to be fast, or they would slow Redis down. * If you need to take long actions, use threads to offload them. - * - * See https://redis.io/topics/notifications for more information. + * + * See https://redis.io/topics/notifications for more information. */ int RM_SubscribeToKeyspaceEvents(RedisModuleCtx *ctx, int types, RedisModuleNotificationFunc callback) { RedisModuleKeyspaceSubscriber *sub = zmalloc(sizeof(*sub)); @@ -3754,26 +3757,22 @@ int RM_SubscribeToKeyspaceEvents(RedisModuleCtx *ctx, int types, RedisModuleNoti listAddNodeTail(moduleKeyspaceSubscribers, sub); return REDISMODULE_OK; - } -/* Dispatcher for keyspace notifications to module subscriber functions. +/* Dispatcher for keyspace notifications to module subscriber functions. * This gets called only if at least one module requested to be notified on * keyspace notifications */ void moduleNotifyKeyspaceEvent(int type, const char *event, robj *key, int dbid) { - /* Don't do anything if there aren't any subscribers */ if (listLength(moduleKeyspaceSubscribers) == 0) return; - + listIter li; listNode *ln; - listRewind(moduleKeyspaceSubscribers,&li); /* Remove irrelevant flags from the type mask */ type &= ~(NOTIFY_KEYEVENT | NOTIFY_KEYSPACE); - while((ln = listNext(&li))) { RedisModuleKeyspaceSubscriber *sub = ln->value; /* Only notify subscribers on events matching they registration, @@ -3784,7 +3783,7 @@ void moduleNotifyKeyspaceEvent(int type, const char *event, robj *key, int dbid) ctx.client = moduleKeyspaceSubscribersClient; selectDb(ctx.client, dbid); - /* mark the handler as activer to avoid reentrant loops. + /* mark the handler as activer to avoid reentrant loops. * If the subscriber performs an action triggering itself, * it will not be notified about it. */ sub->active = 1; @@ -3793,7 +3792,6 @@ void moduleNotifyKeyspaceEvent(int type, const char *event, robj *key, int dbid) moduleFreeContext(&ctx); } } - } /* Unsubscribe any notification subscirbers this module has upon unloading */ @@ -3810,7 +3808,6 @@ void moduleUnsubscribeNotifications(RedisModule *module) { } } - /* -------------------------------------------------------------------------- * Modules API internals * -------------------------------------------------------------------------- */ @@ -3848,10 +3845,9 @@ void moduleRegisterCoreAPI(void); void moduleInitModulesSystem(void) { moduleUnblockedClients = listCreate(); - server.loadmodule_queue = listCreate(); modules = dictCreate(&modulesDictType,NULL); - + /* Set up the keyspace notification susbscriber list and static client */ moduleKeyspaceSubscribers = listCreate(); moduleKeyspaceSubscribersClient = createClient(-1); @@ -3907,7 +3903,6 @@ void moduleFreeModuleStructure(struct RedisModule *module) { zfree(module); } - void moduleUnregisterCommands(struct RedisModule *module) { /* Unregister all the commands registered by this module. */ dictIterator *di = dictGetSafeIterator(server.commands); -- cgit v1.2.1