Note! This project has moved to github.com/armmbed/mbed-events
This repository has been superceded
This project has moved to mbed-events
Composable event loops combine the cheap synchronicity of event loops with the composability of preempted threads.
Two modular event queue classes are provided:
- EventLoop - for loops coupled with a c++ managed thread
- EventQueue - for manually managed event queues
The Event class takes advantage of the extensibility of FuncPtr to allow an event to be passed through APIs as a normal function.
More information on composable event loops.
Diff: EventLoop.h
- Revision:
- 20:2f9d9c53a5af
- Parent:
- 16:ff5d48fcce1b
--- a/EventLoop.h Mon Apr 18 12:59:37 2016 -0500 +++ b/EventLoop.h Mon Apr 18 13:22:21 2016 -0500 @@ -16,7 +16,11 @@ * @param priority Initial priority of the thread * (default: osPriorityNormal) * @param event_count Number of events to allow enqueueing at once + * (default: 32) * @param event_context Max size of arguments passed with an event + * (default: 0) + * @param event_pointer Pointer to memory area to be used for events + * (default: NULL) * @param stack_size Stack size (in bytes) requirements for the thread * (default: DEFAULT_STACK_SIZE) * @param stack_pointer Pointer to stack area to be used by the thread @@ -25,6 +29,7 @@ EventLoop(osPriority priority=osPriorityNormal, unsigned event_count=32, unsigned event_context=0, + unsigned char *event_pointer=NULL, uint32_t stack_size=DEFAULT_STACK_SIZE, unsigned char *stack_pointer=NULL); @@ -33,7 +38,11 @@ * @param priority Initial priority of the thread * (default: osPriorityNormal) * @param event_count Number of events to allow enqueueing at once + * (default: 32) * @param event_context Max size of arguments passed with an event + * (default: 0) + * @param event_pointer Pointer to memory area to be used for events + * (default: NULL) * @param stack_size Stack size (in bytes) requirements for the thread * (default: DEFAULT_STACK_SIZE) * @param stack_pointer Pointer to stack area to be used by the thread @@ -43,6 +52,7 @@ osPriority priority=osPriorityNormal, unsigned event_count=32, unsigned event_context=0, + unsigned char *event_pointer=NULL, uint32_t stack_size=DEFAULT_STACK_SIZE, unsigned char *stack_pointer=NULL);