File tree Expand file tree Collapse file tree 3 files changed +13
-5
lines changed Expand file tree Collapse file tree 3 files changed +13
-5
lines changed Original file line number Diff line number Diff line change 16
16
*/
17
17
#include " events/EventQueue.h"
18
18
#include " events/mbed_events.h"
19
+ #include " platform/mbed_assert.h"
19
20
20
21
using mbed::Callback;
21
22
@@ -74,9 +75,9 @@ void EventQueue::background(Callback<void(int)> update)
74
75
void EventQueue::chain (EventQueue *target)
75
76
{
76
77
if (target) {
77
- equeue_chain (&_equeue, &target->_equeue );
78
+ MBED_ASSERT ( equeue_chain (&_equeue, &target->_equeue ) == 0 );
78
79
} else {
79
- equeue_chain (&_equeue, 0 );
80
+ MBED_ASSERT ( equeue_chain (&_equeue, 0 ) == 0 );
80
81
}
81
82
}
82
83
}
Original file line number Diff line number Diff line change @@ -605,19 +605,23 @@ static void equeue_chain_update(void *p, int ms)
605
605
}
606
606
}
607
607
608
- void equeue_chain (equeue_t * q , equeue_t * target )
608
+ int equeue_chain (equeue_t * q , equeue_t * target )
609
609
{
610
610
if (!target ) {
611
611
equeue_background (q , 0 , 0 );
612
- return ;
612
+ return 0 ;
613
613
}
614
614
615
615
struct equeue_chain_context * c = equeue_alloc (q ,
616
616
sizeof (struct equeue_chain_context ));
617
+ if (!c ) {
618
+ return -1 ;
619
+ }
617
620
618
621
c -> q = q ;
619
622
c -> target = target ;
620
623
c -> id = 0 ;
621
624
622
625
equeue_background (q , equeue_chain_update , c );
626
+ return 0 ;
623
627
}
Original file line number Diff line number Diff line change @@ -220,7 +220,10 @@ void equeue_background(equeue_t *queue,
220
220
//
221
221
// The equeue_chain function allows multiple equeues to be composed, sharing
222
222
// the context of a dispatch loop while still being managed independently.
223
- void equeue_chain (equeue_t * queue , equeue_t * target );
223
+ //
224
+ // If the event queue chaining fails, equeue_chain returns a negative,
225
+ // platform-specific error code.
226
+ int equeue_chain (equeue_t * queue , equeue_t * target );
224
227
225
228
226
229
#ifdef __cplusplus
You can’t perform that action at this time.
0 commit comments