antirez
3b10c398f9
Modules: block on keys: finish implementing RM_UnblockClient().
2019-10-31 17:39:05 +01:00
antirez
27f2726846
Modules: block ok keys: improve example.
2019-10-31 12:31:22 +01:00
antirez
e6eaf0fce6
Modules: block on keys: fix bugs in processing order.
2019-10-31 12:23:55 +01:00
antirez
08df2470a9
Modules: block on keys: fix the top comments.
2019-10-31 11:43:45 +01:00
antirez
4af1df6b9f
Modules: block on keys: use a better interface.
...
Using the is_key_ready() callback plus the reply callback later, creates
different issues AFAIK:
1. More complex API.
2. We need to call the reply callback() ASAP if the is_key_ready()
interface returned success, however the internals do not work in that
way, so when the reply callback is called the setup could be different.
To fix that, there is to break the current design that handles the
unblocked clients asyncrhonously, and run the list ASAP.
2019-10-31 11:35:07 +01:00
antirez
c9ad11d797
Modules: remove spurious call from moduleHandleBlockedClients().
...
Now we handle propagation when we free the context.
2019-10-31 10:32:59 +01:00
antirez
5b3c740872
Modules: block on keys: example on hellotype.c.
2019-10-31 10:30:54 +01:00
antirez
c4becaebaa
Modules: block on keys: implement the internals.
2019-10-30 10:57:44 +01:00
antirez
fb56b8fd07
Modules: block on keys: export APIs.
2019-10-30 10:20:28 +01:00
antirez
5f2a2b974e
Modules: block on keys functions layout and mechanism.
2019-10-30 10:11:58 +01:00
antirez
ac5f73bfbf
LOLWUT 6: always pick a default color sequence.
2019-10-28 11:10:58 +01:00
antirez
d3a46ec04e
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2019-10-28 11:09:09 +01:00
Salvatore Sanfilippo
d4a63e69b7
Merge pull request #6496 from oranagra/module_tests_valgrind
...
Make module tests pass with valgrind, and fix a leak in diskless load
2019-10-28 10:05:52 +01:00
Salvatore Sanfilippo
323379b688
Merge pull request #6493 from yossigo/modules-make-cleanup
...
Modules: improve tests Makefile.
2019-10-28 10:00:40 +01:00
Salvatore Sanfilippo
79e670d6ad
Merge pull request #6498 from oranagra/rm_latency_add_sample
...
Module API for LatencyAddSample
2019-10-28 09:59:26 +01:00
Salvatore Sanfilippo
9733126ae3
Merge pull request #4761 from WJWH/minor-typos
...
Fix some minor typos in comments
2019-10-28 09:58:38 +01:00
Salvatore Sanfilippo
7a1e50a9e6
Merge pull request #6502 from happynote3966/typo-fix
...
fix comment typo in redis-cli.c
2019-10-28 09:57:43 +01:00
Salvatore Sanfilippo
cb470bbb73
Merge pull request #6503 from cstrotm/unstable
...
Typo fix: kill -> still
2019-10-28 09:57:19 +01:00
Salvatore Sanfilippo
847dd92ef0
Merge pull request #6505 from swilly22/replaywith-module-API-additions
...
Introduce ReplyWithVerbatimString, ReplyWithEmptyArray, ReplyWithNull…
2019-10-28 09:56:56 +01:00
Salvatore Sanfilippo
7ced3fd0e9
Merge pull request #4994 from soloestoy/module-blocked-client
...
Modules: make unloading module more safe
2019-10-28 09:55:11 +01:00
swilly22
29827d37a5
Introduce ReplyWithVerbatimString, ReplyWithEmptyArray, ReplyWithNullArray and ReplyWithEmptyString to redis module API
2019-10-28 08:50:25 +02:00
zhaozhao.zz
18c4ccf898
Modules: make unloading module more safe
...
As we know if a module exports module-side data types,
unload it is not allowed. This rule is the same with
blocked clients in module, because we use background
threads to implement module blocked clients, and it's
not safe to unload a module if there are background
threads running. So it's necessary to check if any
blocked clients running in this module when unload it.
Moreover, after that we can ensure that if no modules,
then no module blocked clients even module unloaded.
So, we can call moduleHandleBlockedClients only when
we have installed modules.
2019-10-28 11:31:58 +08:00
Carsten Strotmann
f12c08d921
Typo fix: kill -> still
2019-10-25 19:38:45 +02:00
happynote3966
fd5c1adbd7
fix comment typo in redis-cli.c
2019-10-25 22:31:55 +09:00
Wander Hillen
3ca35b8024
Merge branch 'unstable' into minor-typos
2019-10-25 10:18:26 +02:00
Oran Agra
5ba6fe50c7
Module API for LatencyAddSample
2019-10-24 14:24:55 +03:00
Yossi Gottlieb
a6d42ebfd9
Modules: improve tests Makefile.
...
Removes some boilerplate per module, add clean target.
2019-10-24 13:21:35 +03:00
antirez
1ffe4578e2
Remove trailing space from server.c.
2019-10-24 11:20:15 +02:00
antirez
3bd7f715c8
Modules hooks: test flush event.
2019-10-24 10:51:03 +02:00
antirez
51b680be42
Modules hooks: initial Tcl test file.
2019-10-24 10:41:25 +02:00
Oran Agra
70815145a7
Make module tests pass with valgrind, and fix a leak in diskless load
2019-10-24 09:45:25 +03:00
antirez
a398066625
Modules hooks: select DB zero by default.
2019-10-23 18:51:44 +02:00
antirez
e9f6688a68
Modules hooks: test module draft.
2019-10-23 18:42:02 +02:00
antirez
83adff66c7
Modules hooks: fix memory leak in example module.
2019-10-23 18:39:53 +02:00
antirez
938dafa9e3
Modules hooks: for nested calls, create new fake clients.
...
We can't use the same client at the same time when re-entering the hook.
2019-10-23 18:39:53 +02:00
antirez
261a66b791
Modules hooks: don't call the hook for fake clients.
2019-10-23 18:39:53 +02:00
antirez
d6739df4fc
Modules hooks: do not re-enter in hooks.
...
Calling a module hook callback may result in callback operations in turn
triggering other events the module is subscribed too. We don't want to
trigger those, it's unsafe and quite confusing, and to do it correcly we
would need to maintain an event list: quite a more complex
implementation.
2019-10-23 18:39:53 +02:00
antirez
9d10d62003
Modules hooks: select the right DB for FLUSHDB events.
2019-10-23 18:39:53 +02:00
antirez
77a37cafd5
Modules hooks: FLUSHDB event example.
2019-10-23 18:39:53 +02:00
antirez
581c9133e5
Modules hooks: implement the FLUSHDB event.
2019-10-23 18:39:53 +02:00
antirez
6cd26b3db3
Modules hooks: unify structures definitions.
2019-10-23 18:39:53 +02:00
antirez
4866552961
Modules hooks: document what yet to implement WIP 2.
2019-10-23 18:39:53 +02:00
antirez
d41d09d474
Modules hooks: document what yet to implement WIP 1.
2019-10-23 18:39:53 +02:00
antirez
aa4d69606d
Modules hooks: do more in example client callback.
2019-10-23 18:39:53 +02:00
antirez
7379bb76f2
Module hooks: fixes and an example module.
2019-10-23 18:39:53 +02:00
antirez
d5bd45a368
Modules hooks: fix sub event in calls from client change.
2019-10-23 18:39:53 +02:00
antirez
f3e4f24f68
Modules hooks: fix define / linker issues. Implement one test event.
2019-10-23 18:39:53 +02:00
antirez
98a0d95965
Modules hooks: handle module unloading + API export.
2019-10-23 18:39:53 +02:00
antirez
30d8dce935
Modules hooks: fix a leak and a few more issues.
2019-10-23 18:39:53 +02:00
antirez
aa9b870db3
Modules hooks: event firing logic.
2019-10-23 18:39:53 +02:00