* Steven Rostedt [off-list ref] wrote:
I'm a bit nervous about the 'active' role of (trace_)events, because of the
way multiple callbacks can be registered. How would:
err = event_x();
if (err == -EACCESS) {
be handled? [...]
The default behavior would be something obvious: to trigger all callbacks and
use the first non-zero return value.
[...] Would we need a way to prioritize which call back gets the return
value? One way I guess would be to add a check_event option, where you pass
in an ENUM of the event you want:
event_x();
err = check_event_x(MYEVENT);
If something registered itself as "MYEVENT" to event_x, then you get the
return code of MYEVENT. If the MYEVENT was not registered, a -ENODEV or
something could be returned. I'm sure we could even optimize it such a way if
no active events have been registered to event_x, that check_event_x() will
return -ENODEV without any branches.
I would keep it simple and extensible - that way we can complicate it when the
need arises! :)
Thanks,
Ingo