diff options
author | Jose Bollo <jose.bollo@iot.bzh> | 2019-12-18 18:26:00 +0100 |
---|---|---|
committer | Jose Bollo <jose.bollo@iot.bzh> | 2020-01-03 16:53:38 +0100 |
commit | 36ed9d2eb93f135ff293df5716f8232c664d32f4 (patch) | |
tree | be2418a3856ab73b6e892399bf977c7f7f5efe0f /src/afb-evt.h | |
parent | c6fcbec33ab346ee8a658531afb130647c656df7 (diff) |
afb-evt: Ensure unsubscribe works
Fix the logic of unsubscribing to events. It
was not possible before to implment it without
tracking every session and context. It was not
done because of the required complexity.
This implementation ensures that unexpected
events lead to a removal of the listener from the
list of watchers of the events.
The management of the list of watchers is reworked
to free unused memory.
Bug-AGL: SPEC-3069
Change-Id: Ie67372adbde9dcb9dc6c5c2738111d22609e7256
Signed-off-by: Jose Bollo <jose.bollo@iot.bzh>
Diffstat (limited to 'src/afb-evt.h')
-rw-r--r-- | src/afb-evt.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/afb-evt.h b/src/afb-evt.h index 88308aaa..e4c54eed 100644 --- a/src/afb-evt.h +++ b/src/afb-evt.h @@ -61,6 +61,7 @@ extern int afb_evt_evtid_broadcast(struct afb_evtid *evtid, struct json_object * extern int afb_evt_listener_watch_evt(struct afb_evt_listener *listener, struct afb_evtid *evtid); extern int afb_evt_listener_unwatch_evt(struct afb_evt_listener *listener, struct afb_evtid *evtid); extern int afb_evt_listener_unwatch_id(struct afb_evt_listener *listener, uint16_t eventid); +extern void afb_evt_listener_unwatch_all(struct afb_evt_listener *listener, int remove); extern struct afb_event_x2 *afb_evt_event_x2_create(const char *fullname); extern struct afb_event_x2 *afb_evt_event_x2_create2(const char *prefix, const char *name); |