16 #ifndef MCA_OPAL_EVENT_LIBEVENT2013_H
17 #define MCA_OPAL_EVENT_LIBEVENT2013_H
19 #include "opal_config.h"
21 #ifdef HAVE_SYS_TYPES_H
22 #include <sys/types.h>
26 #define WIN32_LEAN_AND_MEAN
28 #undef WIN32_LEAN_AND_MEAN
30 #ifdef HAVE_SYS_TIME_H
48 #include "opal/threads/threads.h"
50 #include "opal/constants.h"
53 #include "opal/mca/event/base/base.h"
55 #include "libevent/event.h"
58 #include "opal/mca/event/event.h"
84 #define OPAL_EVENT_NOOP 0x00
85 #define OPAL_EVENT_ADD 0x01
86 #define OPAL_EVENT_DEL 0x02
88 #if OPAL_EVENT_HAVE_THREAD_SUPPORT
89 #define OPAL_UPDATE_EVBASE(b, evt, ad)
91 #define OPAL_UPDATE_EVBASE(b, evt, ad) \
93 opal_event_update_t up; \
96 opal_fd_write((b)->update_pipe[1], sizeof(opal_event_update_t), &up); \
105 #define OPAL_EV_TIMEOUT EV_TIMEOUT
106 #define OPAL_EV_READ EV_READ
107 #define OPAL_EV_WRITE EV_WRITE
108 #define OPAL_EV_SIGNAL EV_SIGNAL
110 #define OPAL_EV_PERSIST EV_PERSIST
112 #define OPAL_EVLOOP_ONCE EVLOOP_ONCE
113 #define OPAL_EVLOOP_NONBLOCK EVLOOP_NONBLOCK
119 OPAL_DECLSPEC
int opal_event_init(
void);
123 OPAL_DECLSPEC
struct timeval *opal_event_base_init_common_timeout (
opal_event_base_t *evbase,
124 struct timeval *tv_in);
127 #if OPAL_EVENT_HAVE_THREAD_SUPPORT
129 #define opal_event_use_threads(x) evthread_use_windows_threads(x)
131 #define opal_event_use_threads(x) evthread_use_pthreads(x)
134 #define opal_event_use_threads(x)
138 #define opal_event_set_debug_output(x) event_set_debug_output((x))
140 #define opal_event_set(b, ev, fd, fg, cb, arg) event_assign((ev), (b)->base, (fd), (fg), (event_callback_fn) (cb), (arg))
142 #define opal_event_add(ev, tv) event_add((ev), (tv))
144 #define opal_event_del(ev) event_del((ev))
146 #define opal_event_active(x, y, z) event_active((x), (y), (z))
148 #define opal_event_new(b, fd, fg, cb, arg) event_new((b)->base, (fd), (fg), (event_callback_fn) (cb), (arg))
150 #define opal_event_free(x) event_free((x))
153 #define opal_event_evtimer_new(b, cb, arg) event_new((b)->base, -1, 0, (event_callback_fn) (cb), (arg))
155 #define opal_event_evtimer_add(ev, tv) event_add((ev), (tv))
157 #define opal_event_evtimer_set(b, ev, cb, arg) event_assign((ev), (b)->base, -1, 0, (event_callback_fn) (cb), (arg))
159 #define opal_event_evtimer_del(ev) event_del((ev))
161 #define opal_event_evtimer_pending(ev, tv) event_pending((ev), EV_TIMEOUT, (tv))
163 #define opal_event_evtimer_initialized(ev) event_initialized((ev))
166 #define opal_event_signal_add(ev, tv) event_add((ev), (tv))
168 #define opal_event_signal_set(b, ev, fd, cb, arg) event_assign((ev), (b)->base, (fd), EV_SIGNAL|EV_PERSIST, (event_callback_fn) (cb), (arg))
170 #define opal_event_signal_del(ev) event_del((ev))
172 #define opal_event_signal_pending(ev, tv) event_pending((ev), EV_SIGNAL, (tv))
174 #define opal_event_signal_initalized(ev) event_initialized((ev))
176 #define opal_event_get_signal(ev) event_get_signal((ev))
178 #define opal_event_loop(b, fg) event_base_loop((b->base), (fg))
180 #define opal_event_dispatch(b) event_base_loop((b)->base, 0)
OPAL output stream facility.
This file presents the MCA parameter interface.
Structure to represent a single event.
Definition: event_struct.h:87
Definition: libevent2013.h:73
Functions for multi-threaded applications using Libevent.
Definition: libevent2013.h:79
Generic routines for "argv"-like handling.
Mutual exclusion functions.
A simple C-language object-oriented system with single inheritance and ownership-based memory managem...
Definition: event-internal.h:167