mirror of
https://codeberg.org/redict/redict.git
synced 2025-01-23 00:28:26 -05:00
1df5bb5687
One way this was happening is when a module issued an RM_Call which would inject MULTI. If the module command that does that was itself issued by something else that already did added MULTI (e.g. another module, or a Lua script), it would have caused nested MULTI. In fact the MULTI state in the client or the MULTI_EMITTED flag in the context isn't the right indication that we need to propagate MULTI or not, because on a nested calls (possibly a module action called by a keyspace event of another module action), these flags aren't retained / reflected. instead there's now a global propagate_in_transaction flag for that. in addition to that, we now have a global in_eval and in_exec flags, to serve the flags of RM_GetContextFlags, since their dependence on the current client is wrong for the same reasons mentioned above. |
||
---|---|---|
.. | ||
auth.c | ||
blockedclient.c | ||
blockonkeys.c | ||
commandfilter.c | ||
datatype.c | ||
fork.c | ||
getkeys.c | ||
hooks.c | ||
infotest.c | ||
keyspace_events.c | ||
Makefile | ||
misc.c | ||
propagate.c | ||
scan.c | ||
test_lazyfree.c | ||
testrdb.c | ||
timer.c |