@@ -207,13 +207,24 @@ int REDISMODULE_API_FUNC(RedisModule_StringAppendBuffer)(RedisModuleCtx *ctx, Re
207
207
void REDISMODULE_API_FUNC (RedisModule_RetainString )(RedisModuleCtx * ctx , RedisModuleString * str );
208
208
int REDISMODULE_API_FUNC (RedisModule_StringCompare )(RedisModuleString * a , RedisModuleString * b );
209
209
RedisModuleCtx * REDISMODULE_API_FUNC (RedisModule_GetContextFromIO )(RedisModuleIO * io );
210
+ long long REDISMODULE_API_FUNC (RedisModule_Milliseconds )(void );
211
+ void REDISMODULE_API_FUNC (RedisModule_DigestAddStringBuffer )(RedisModuleDigest * md , unsigned char * ele , size_t len );
212
+ void REDISMODULE_API_FUNC (RedisModule_DigestAddLongLong )(RedisModuleDigest * md , long long ele );
213
+ void REDISMODULE_API_FUNC (RedisModule_DigestEndSequence )(RedisModuleDigest * md );
214
+
215
+ /* Experimental APIs */
216
+ #ifdef REDISMODULE_EXPERIMENTAL_API
210
217
RedisModuleBlockedClient * REDISMODULE_API_FUNC (RedisModule_BlockClient )(RedisModuleCtx * ctx , RedisModuleCmdFunc reply_callback , RedisModuleCmdFunc timeout_callback , void (* free_privdata )(void * ), long long timeout_ms );
211
218
int REDISMODULE_API_FUNC (RedisModule_UnblockClient )(RedisModuleBlockedClient * bc , void * privdata );
212
219
int REDISMODULE_API_FUNC (RedisModule_IsBlockedReplyRequest )(RedisModuleCtx * ctx );
213
220
int REDISMODULE_API_FUNC (RedisModule_IsBlockedTimeoutRequest )(RedisModuleCtx * ctx );
214
221
void * REDISMODULE_API_FUNC (RedisModule_GetBlockedClientPrivateData )(RedisModuleCtx * ctx );
215
222
int REDISMODULE_API_FUNC (RedisModule_AbortBlock )(RedisModuleBlockedClient * bc );
216
- long long REDISMODULE_API_FUNC (RedisModule_Milliseconds )(void );
223
+ RedisModuleCtx * REDISMODULE_API_FUNC (RedisModule_GetThreadSafeContext )(RedisModuleBlockedClient * bc );
224
+ void REDISMODULE_API_FUNC (RedisModule_FreeThreadSafeContext )(RedisModuleCtx * ctx );
225
+ void REDISMODULE_API_FUNC (RedisModule_ThreadSafeContextLock )(RedisModuleCtx * ctx );
226
+ void REDISMODULE_API_FUNC (RedisModule_ThreadSafeContextUnlock )(RedisModuleCtx * ctx );
227
+ #endif
217
228
218
229
/* This is included inline inside each Redis module. */
219
230
static int RedisModule_Init (RedisModuleCtx * ctx , const char * name , int ver , int apiver ) __attribute__((unused ));
@@ -315,13 +326,23 @@ static int RedisModule_Init(RedisModuleCtx *ctx, const char *name, int ver, int
315
326
REDISMODULE_GET_API (RetainString );
316
327
REDISMODULE_GET_API (StringCompare );
317
328
REDISMODULE_GET_API (GetContextFromIO );
329
+ REDISMODULE_GET_API (Milliseconds );
330
+ REDISMODULE_GET_API (DigestAddStringBuffer );
331
+ REDISMODULE_GET_API (DigestAddLongLong );
332
+ REDISMODULE_GET_API (DigestEndSequence );
333
+
334
+ #ifdef REDISMODULE_EXPERIMENTAL_API
335
+ REDISMODULE_GET_API (GetThreadSafeContext );
336
+ REDISMODULE_GET_API (FreeThreadSafeContext );
337
+ REDISMODULE_GET_API (ThreadSafeContextLock );
338
+ REDISMODULE_GET_API (ThreadSafeContextUnlock );
318
339
REDISMODULE_GET_API (BlockClient );
319
340
REDISMODULE_GET_API (UnblockClient );
320
341
REDISMODULE_GET_API (IsBlockedReplyRequest );
321
342
REDISMODULE_GET_API (IsBlockedTimeoutRequest );
322
343
REDISMODULE_GET_API (GetBlockedClientPrivateData );
323
344
REDISMODULE_GET_API (AbortBlock );
324
- REDISMODULE_GET_API ( Milliseconds );
345
+ #endif
325
346
326
347
RedisModule_SetModuleAttribs (ctx ,name ,ver ,apiver );
327
348
return REDISMODULE_OK ;
0 commit comments