diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2013-07-26 17:45:15 +0200 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2013-07-26 17:47:35 +0200 |
commit | 1f67abe0f324a226de619ba9de44dbd5eb54ecaa (patch) | |
tree | 493fd3d7b7a0dcdd12e199f3db8b9285d88823f8 /mmss/schedule.cpp | |
parent | 0ffde34faac958a28842a952157852fd072834a5 (diff) | |
download | gmrf-1f67abe0f324a226de619ba9de44dbd5eb54ecaa.tar gmrf-1f67abe0f324a226de619ba9de44dbd5eb54ecaa.zip |
Clean up queue implementation, fix namespaces
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); } |