On Mon, 2011-05-16 at 18:52 +0200, Ingo Molnar wrote: > * Steven Rostedt <rostedt@xxxxxxxxxxx> 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. But how do we know which callback that was from? There's no ordering of what callbacks are called first. > > > [...] 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! :) The above is rather trivial to implement. I don't think it complicates anything. -- Steve