diff options
Diffstat (limited to 'mmss/schedule.cpp')
-rw-r--r-- | mmss/schedule.cpp | 17 |
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); } |