Lines Matching refs:bc
178 typedef void (*RedisModuleDisconnectFunc) (RedisModuleCtx *ctx, struct RedisModuleBlockedClient *bc…
3570 RedisModuleBlockedClient *bc = c->bpop.module_blocked_handle; in unblockClientFromModule() local
3573 if (bc->disconnect_callback) { in unblockClientFromModule()
3575 ctx.blocked_privdata = bc->privdata; in unblockClientFromModule()
3576 ctx.module = bc->module; in unblockClientFromModule()
3577 ctx.client = bc->client; in unblockClientFromModule()
3578 bc->disconnect_callback(&ctx,bc); in unblockClientFromModule()
3582 bc->client = NULL; in unblockClientFromModule()
3612 RedisModuleBlockedClient *bc = c->bpop.module_blocked_handle; in RM_BlockClient() local
3618 bc->client = (islua || ismulti) ? NULL : c; in RM_BlockClient()
3619 bc->module = ctx->module; in RM_BlockClient()
3620 bc->reply_callback = reply_callback; in RM_BlockClient()
3621 bc->timeout_callback = timeout_callback; in RM_BlockClient()
3622 bc->disconnect_callback = NULL; /* Set by RM_SetDisconnectCallback() */ in RM_BlockClient()
3623 bc->free_privdata = free_privdata; in RM_BlockClient()
3624 bc->privdata = NULL; in RM_BlockClient()
3625 bc->reply_client = createClient(-1); in RM_BlockClient()
3626 bc->reply_client->flags |= CLIENT_MODULE; in RM_BlockClient()
3627 bc->dbid = c->db->id; in RM_BlockClient()
3638 return bc; in RM_BlockClient()
3652 int RM_UnblockClient(RedisModuleBlockedClient *bc, void *privdata) { in RM_UnblockClient() argument
3654 bc->privdata = privdata; in RM_UnblockClient()
3655 listAddNodeTail(moduleUnblockedClients,bc); in RM_UnblockClient()
3665 int RM_AbortBlock(RedisModuleBlockedClient *bc) { in RM_AbortBlock() argument
3666 bc->reply_callback = NULL; in RM_AbortBlock()
3667 bc->disconnect_callback = NULL; in RM_AbortBlock()
3668 return RM_UnblockClient(bc,NULL); in RM_AbortBlock()
3687 void RM_SetDisconnectCallback(RedisModuleBlockedClient *bc, RedisModuleDisconnectFunc callback) { in RM_SetDisconnectCallback() argument
3688 bc->disconnect_callback = callback; in RM_SetDisconnectCallback()
3701 RedisModuleBlockedClient *bc; in moduleHandleBlockedClients() local
3710 bc = ln->value; in moduleHandleBlockedClients()
3711 client *c = bc->client; in moduleHandleBlockedClients()
3720 if (c && bc->reply_callback) { in moduleHandleBlockedClients()
3723 ctx.blocked_privdata = bc->privdata; in moduleHandleBlockedClients()
3724 ctx.module = bc->module; in moduleHandleBlockedClients()
3725 ctx.client = bc->client; in moduleHandleBlockedClients()
3726 ctx.blocked_client = bc; in moduleHandleBlockedClients()
3727 bc->reply_callback(&ctx,(void**)c->argv,c->argc); in moduleHandleBlockedClients()
3733 if (bc->privdata && bc->free_privdata) { in moduleHandleBlockedClients()
3737 ctx.blocked_privdata = bc->privdata; in moduleHandleBlockedClients()
3738 ctx.module = bc->module; in moduleHandleBlockedClients()
3739 ctx.client = bc->client; in moduleHandleBlockedClients()
3740 bc->free_privdata(&ctx,bc->privdata); in moduleHandleBlockedClients()
3748 if (c) AddReplyFromClient(c, bc->reply_client); in moduleHandleBlockedClients()
3749 freeClient(bc->reply_client); in moduleHandleBlockedClients()
3755 bc->disconnect_callback = NULL; in moduleHandleBlockedClients()
3771 zfree(bc); in moduleHandleBlockedClients()
3784 RedisModuleBlockedClient *bc = c->bpop.module_blocked_handle; in moduleBlockedClientTimedOut() local
3787 ctx.module = bc->module; in moduleBlockedClientTimedOut()
3788 ctx.client = bc->client; in moduleBlockedClientTimedOut()
3789 ctx.blocked_client = bc; in moduleBlockedClientTimedOut()
3790 bc->timeout_callback(&ctx,(void**)c->argv,c->argc); in moduleBlockedClientTimedOut()
3795 bc->disconnect_callback = NULL; in moduleBlockedClientTimedOut()
3853 RedisModuleCtx *RM_GetThreadSafeContext(RedisModuleBlockedClient *bc) { in RM_GetThreadSafeContext() argument
3857 if (bc) { in RM_GetThreadSafeContext()
3858 ctx->blocked_client = bc; in RM_GetThreadSafeContext()
3859 ctx->module = bc->module; in RM_GetThreadSafeContext()
3867 if (bc) { in RM_GetThreadSafeContext()
3868 selectDb(ctx->client,bc->dbid); in RM_GetThreadSafeContext()
3869 ctx->client->id = bc->client->id; in RM_GetThreadSafeContext()