jobs: Fix infinite wait lock 38/21438/2
authorJosé Bollo <jose.bollo@iot.bzh>
Tue, 28 May 2019 07:37:11 +0000 (09:37 +0200)
committerJosé Bollo <jose.bollo@iot.bzh>
Wed, 29 May 2019 08:58:56 +0000 (08:58 +0000)
commitf9c743046f94769c25ffc5bfd8d190c53cc4d613
tree1a1acec49d5638a1e33e2ba0484b3465f6dd3de2
parent02fe255525d3805350676445b5c8854afa46cbe4
jobs: Fix infinite wait lock

The binder was sometime locked until an external
event comes. This was discovered during stressing
startup test that don't expect external inputs and
that then waits for always without terminating.

The issue came from a little hole in the management
of the state of evmgr object. By design the evmgr
has to be synchronised against concurrent accesses
not by itself but by the integration. However, the
state of "running" wasn't set in the code protected
against concurent accesses. The new function allows
the integrator to correctly set the state before
releasing protection.

Bug-AGL: SPEC-2459

Signed-off-by: José Bollo <jose.bollo@iot.bzh>
Change-Id: Id75fd97c06d69666ced912a0a61380573dab31af
src/evmgr.c
src/evmgr.h
src/jobs.c