diff options
author | Jose Bollo <jose.bollo@iot.bzh> | 2019-02-06 17:16:09 +0100 |
---|---|---|
committer | Jose Bollo <jose.bollo@iot.bzh> | 2019-02-06 17:27:11 +0100 |
commit | fcd68bb0f872c65c4317377f787f5fdddea6e5d0 (patch) | |
tree | de1fa0464ebda4ff12477f7b8fc43957a6b4461c /bindings | |
parent | 77bf8a30c07a4ab5690337ed362dae4414e590fb (diff) |
jobs: Ensure releasing event loop
The internal functions blocking threads
for implementing call_sync were not releasing
the event loop, leading to deafness of the
binder.
Include a tuto-4 that reproduce the issue
on a binder with the bug and that also shows
interesting usages of the binder.
Bug-AGL: SPEC-2161
Change-Id: I83ad4d55d721a6046e798a5e06967df4dd5a7284
Signed-off-by: Jose Bollo <jose.bollo@iot.bzh>
Diffstat (limited to 'bindings')
-rw-r--r-- | bindings/tutorial/CMakeLists.txt | 1 | ||||
-rw-r--r-- | bindings/tutorial/tuto-4.c | 29 |
2 files changed, 30 insertions, 0 deletions
diff --git a/bindings/tutorial/CMakeLists.txt b/bindings/tutorial/CMakeLists.txt index 5c19bb85..b45851fe 100644 --- a/bindings/tutorial/CMakeLists.txt +++ b/bindings/tutorial/CMakeLists.txt @@ -32,5 +32,6 @@ ENDMACRO(tuto) tuto(1 c) tuto(2 c) tuto(3 cpp) +tuto(4 c) tuto(app1 c) diff --git a/bindings/tutorial/tuto-4.c b/bindings/tutorial/tuto-4.c new file mode 100644 index 00000000..cb909fd0 --- /dev/null +++ b/bindings/tutorial/tuto-4.c @@ -0,0 +1,29 @@ +#define AFB_BINDING_VERSION 3 +#include <afb/afb-binding.h> + +void hello(afb_req_t req) +{ + AFB_REQ_DEBUG(req, "hello world"); + afb_req_reply(req, NULL, NULL, "hello world"); +} + +const afb_verb_t verbs[] = { + { .verb="hello", .callback=hello }, + { .verb=NULL } +}; + + +static int init(afb_api_t api) +{ + int rc = afb_api_require_api(api, "hello", 1); + if (!rc) + rc = afb_api_call_sync(api, "hello", "ping", NULL, NULL, NULL, NULL); + return rc; +} + +const afb_binding_t afbBindingExport = { + .api = "tuto-4", + .verbs = verbs, + .init = init +}; + |