MCPcopy Create free account
hub / github.com/Snapchat/KeyDB / rdbSaveModulesAux

Function rdbSaveModulesAux

src/module.cpp:4989–5015  ·  view source on GitHub ↗

Iterate over modules, and trigger rdb aux saving for the ones modules types * who asked for it. */

Source from the content-addressed store, hash-verified

4987/* Iterate over modules, and trigger rdb aux saving for the ones modules types
4988 * who asked for it. */
4989ssize_t rdbSaveModulesAux(rio *rdb, int when) {
4990 size_t total_written = 0;
4991 dictIterator *di = dictGetIterator(modules);
4992 dictEntry *de;
4993
4994 while ((de = dictNext(di)) != NULL) {
4995 struct RedisModule *module = (RedisModule*)dictGetVal(de);
4996 listIter li;
4997 listNode *ln;
4998
4999 listRewind(module->types,&li);
5000 while((ln = listNext(&li))) {
5001 moduleType *mt = (moduleType*)ln->value;
5002 if (!mt->aux_save || !(mt->aux_save_triggers & when))
5003 continue;
5004 ssize_t ret = rdbSaveSingleModuleAux(rdb, when, mt);
5005 if (ret==-1) {
5006 dictReleaseIterator(di);
5007 return -1;
5008 }
5009 total_written += ret;
5010 }
5011 }
5012
5013 dictReleaseIterator(di);
5014 return total_written;
5015}
5016
5017/* --------------------------------------------------------------------------
5018 * ## Key digest API (DEBUG DIGEST interface for modules types)

Callers 1

rdbSaveRioFunction · 0.85

Calls 6

listRewindFunction · 0.85
listNextFunction · 0.85
rdbSaveSingleModuleAuxFunction · 0.85
dictGetIteratorFunction · 0.70
dictNextFunction · 0.70
dictReleaseIteratorFunction · 0.70

Tested by

no test coverage detected