diff options
| author | Mark Stapp <mjs@labn.net> | 2023-07-11 16:03:38 -0400 | 
|---|---|---|
| committer | Mark Stapp <mjs@labn.net> | 2023-07-25 10:17:48 -0400 | 
| commit | adca5c22c573f17b09b96a0994953c8f643fd301 (patch) | |
| tree | 84894373c496a0279b3fc5eb944803c53bcb6c34 /lib/frrevent.h | |
| parent | 9e32b73634a8bbe893f2425ee89ee27651d93408 (diff) | |
* : include event ptr in event_execute api
Include an event ptr-to-ptr in the event_execute() api
call, like the various schedule api calls. This allows the
execute() api to cancel an existing scheduled task if that
task is being executed inline.
Signed-off-by: Mark Stapp <mjs@labn.net>
Diffstat (limited to 'lib/frrevent.h')
| -rw-r--r-- | lib/frrevent.h | 7 | 
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/frrevent.h b/lib/frrevent.h index 2b0c52bb51..fe33ffd1f2 100644 --- a/lib/frrevent.h +++ b/lib/frrevent.h @@ -195,7 +195,7 @@ struct cpu_event_history {  	_xref_t_a(timer_tv, TIMER, m, f, a, v, t)  #define event_add_event(m, f, a, v, t) _xref_t_a(event, EVENT, m, f, a, v, t) -#define event_execute(m, f, a, v)                                              \ +#define event_execute(m, f, a, v, p)                                           \  	({                                                                     \  		static const struct xref_eventsched _xref __attribute__(       \  			(used)) = {                                            \ @@ -205,7 +205,7 @@ struct cpu_event_history {  			.event_type = EVENT_EXECUTE,                           \  		};                                                             \  		XREF_LINK(_xref.xref);                                         \ -		_event_execute(&_xref, m, f, a, v);                            \ +		_event_execute(&_xref, m, f, a, v, p);                         \  	}) /* end */  /* Prototypes. */ @@ -241,7 +241,8 @@ extern void _event_add_event(const struct xref_eventsched *xref,  extern void _event_execute(const struct xref_eventsched *xref,  			   struct event_loop *master, -			   void (*fn)(struct event *), void *arg, int val); +			   void (*fn)(struct event *), void *arg, int val, +			   struct event **eref);  extern void event_cancel(struct event **event);  extern void event_cancel_async(struct event_loop *m, struct event **eptr,  | 
