summaryrefslogtreecommitdiffstats
path: root/mmss/schedule.cpp
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2013-07-26 17:45:15 +0200
committerMatthias Schiffer <mschiffer@universe-factory.net>2013-07-26 17:47:35 +0200
commit1f67abe0f324a226de619ba9de44dbd5eb54ecaa (patch)
tree493fd3d7b7a0dcdd12e199f3db8b9285d88823f8 /mmss/schedule.cpp
parent0ffde34faac958a28842a952157852fd072834a5 (diff)
downloadgmrf-1f67abe0f324a226de619ba9de44dbd5eb54ecaa.tar
gmrf-1f67abe0f324a226de619ba9de44dbd5eb54ecaa.zip
Clean up queue implementation, fix namespaces
Diffstat (limited to 'mmss/schedule.cpp')
-rw-r--r--mmss/schedule.cpp17
1 files changed, 10 insertions, 7 deletions
diff --git a/mmss/schedule.cpp b/mmss/schedule.cpp
index adebf19..88de519 100644
--- a/mmss/schedule.cpp
+++ b/mmss/schedule.cpp
@@ -27,17 +27,20 @@
#include "mmss.hpp"
+namespace MMSS {
+
+void run_scheduled(std::shared_ptr<scheduled_t> scheduled) {
+ scheduled->f(scheduled->node, scheduled->node->ctx, scheduled->arg);
+}
+
+}
+
void gmrf_schedule(gmrf_t *gmrf, gmrf_scheduled_func f, void *arg, unsigned delay) {
- mmss_scheduled_t *scheduled = new mmss_scheduled_t;
+ std::shared_ptr<MMSS::scheduled_t> scheduled = std::make_shared<MMSS::scheduled_t>();
scheduled->node = gmrf;
scheduled->f = f;
scheduled->arg = arg;
- mmss_queue_put(gmrf->mmss, &gmrf->mmss->scheduled_queue, scheduled, gmrf->mmss->now+delay);
-}
-
-void mmss_run_scheduled(mmss_scheduled_t *scheduled) {
- scheduled->f(scheduled->node, scheduled->node->ctx, scheduled->arg);
- delete scheduled;
+ gmrf->mmss->scheduled_queue.put(scheduled, gmrf->mmss->now+delay);
}