| /******************************************************************************* |
| * Copyright (c) 2007 Wind River Systems, Inc. and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Wind River Systems - initial API and implementation |
| *******************************************************************************/ |
| |
| /* |
| * Event queue manager. |
| * Event is a data pointer plus a function pointer (a.k.a. event handler). |
| * |
| * Posting event means placing event into event queue. |
| * Dispatching event means removing event from the queue and then calling |
| * event function with event data as argument. |
| * |
| * All events are dispatched by single thread - dispatch thread. This makes it safe |
| * to access global data structures from event handlers without further synchronization, |
| * while allows for high level of concurrency. |
| */ |
| |
| #ifndef D_events |
| #define D_events |
| |
| extern void post_event(void (*handler)(void *), void *arg); |
| extern void post_event_with_delay(void (*handler)(void *), void *arg, unsigned long us_delay); |
| |
| extern int is_dispatch_thread(void); |
| |
| extern void run_event_loop(void); |
| |
| extern void ini_events_queue(void); |
| |
| #endif |