events: fix signal overlapping in generic events
authorarighi <arighi@38d2e660-2303-0410-9eaa-f027e97ec537>
Thu, 3 Mar 2011 16:24:18 +0000 (16:24 +0000)
committerarighi <arighi@38d2e660-2303-0410-9eaa-f027e97ec537>
Thu, 3 Mar 2011 16:24:18 +0000 (16:24 +0000)
commit6aebe0e6d7a5be5aacda0b39d86b4a9b421e247c
treeedad93049e294d4ef1eba76c7ec1a57828e0f35c
parent9a7bbb95cf63630ab49e111b0e610df042330abf
events: fix signal overlapping in generic events

When the kernel is enabled the generic events subsystem uses SIG_SYSTEM5
to synchronize the completion of the events.

The owner (process) of an event is assigned when the event is
initialized via event_initGeneric().

It may happen that the same process initializes more than one event, so
when one of them is triggered the process is awakened independently on
the event it is waiting for.

Fix this by moving the signal masks into the generic event structure and
export a new signal API to directly accept the signal masks, instead of
implicitly using the signal masks of the current process.

git-svn-id: https://src.develer.com/svnoss/bertos/trunk@4750 38d2e660-2303-0410-9eaa-f027e97ec537
bertos/mware/event.c
bertos/mware/event.h