aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDeterminant <tederminant@gmail.com>2019-06-12 12:05:27 -0400
committerDeterminant <tederminant@gmail.com>2019-06-12 12:05:27 -0400
commit9f6460c7ab774d900f391345bbf3fac8617a3aa3 (patch)
tree94df1d667a3db95e8b92420c3fa361afb05a2888
parentedc6e299727098c499fd1edae145a0462fee7807 (diff)
...
-rw-r--r--include/salticidae/event.h6
-rw-r--r--src/event.cpp8
2 files changed, 8 insertions, 6 deletions
diff --git a/include/salticidae/event.h b/include/salticidae/event.h
index c54b69d..91637e4 100644
--- a/include/salticidae/event.h
+++ b/include/salticidae/event.h
@@ -681,10 +681,10 @@ void threadcall_free(threadcall_t *self);
void threadcall_async_call(threadcall_t *self, threadcall_callback_t callback, void *userdata);
eventcontext_t *threadcall_get_ec(threadcall_t *self);
-typedef void (*sigev_callback_t)(int events);
-sigev_t *sigev_new(const eventcontext_t *ec, sigev_callback_t cb);
+typedef void (*sigev_callback_t)(int signum, void *);
+sigev_t *sigev_new(const eventcontext_t *ec, sigev_callback_t cb, void *userdata);
void sigev_free(sigev_t *self);
-void sigev_add(sigev_t *self, int sig);
+void sigev_add(sigev_t *self, int signum);
typedef void (*timerev_callback_t)(timerev_t *, void *);
timerev_t *timerev_new(const eventcontext_t *ec, timerev_callback_t callback, void *);
diff --git a/src/event.cpp b/src/event.cpp
index 9b6f432..4e5ce0b 100644
--- a/src/event.cpp
+++ b/src/event.cpp
@@ -12,8 +12,10 @@ void eventcontext_dispatch(eventcontext_t *self) { return self->dispatch(); }
void eventcontext_stop(eventcontext_t *self) { return self->stop(); }
-sigev_t *sigev_new(const eventcontext_t *self, sigev_callback_t callback) {
- return new sigev_t(*self, callback);
+sigev_t *sigev_new(const eventcontext_t *self, sigev_callback_t callback, void *userdata) {
+ return new sigev_t(*self, [=](int signum) {
+ callback(signum, userdata);
+ });
}
threadcall_t *threadcall_new(const eventcontext_t *ec) { return new threadcall_t(*ec); }
@@ -32,7 +34,7 @@ eventcontext_t *threadcall_get_ec(threadcall_t *self) {
void sigev_free(sigev_t *self) { delete self; }
-void sigev_add(sigev_t *self, int sig) { self->add(sig); }
+void sigev_add(sigev_t *self, int signum) { self->add(signum); }
timerev_t *timerev_new(const eventcontext_t *ec, timerev_callback_t callback, void *userdata) {
return new timerev_t(*ec, [=](salticidae::TimerEvent &ev) {