summaryrefslogtreecommitdiffstats
path: root/mmss/schedule.cpp
diff options
context:
space:
mode:
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);
}