summaryrefslogtreecommitdiffstats
path: root/mmss/gmrf.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'mmss/gmrf.cpp')
-rw-r--r--mmss/gmrf.cpp11
1 files changed, 4 insertions, 7 deletions
diff --git a/mmss/gmrf.cpp b/mmss/gmrf.cpp
index 3a8a224..9cda413 100644
--- a/mmss/gmrf.cpp
+++ b/mmss/gmrf.cpp
@@ -45,8 +45,7 @@ size_t gmrf_iface_get_mtu(gmrf_t *gmrf, gmrf_iface_t *iface) {
}
bool gmrf_iface_send(gmrf_t *gmrf, gmrf_iface_t *iface, const void *data, size_t len, const gmrf_addr_t *dest) {
- auto src_iface = iface->iface.lock();
- assert(src_iface);
+ auto src_iface = iface->shared_from_this();
for (auto dest_iface : src_iface->net->interfaces) {
if (gmrf_addr_equal(&dest_iface->address, dest)) {
@@ -59,8 +58,7 @@ bool gmrf_iface_send(gmrf_t *gmrf, gmrf_iface_t *iface, const void *data, size_t
}
bool gmrf_iface_send_bc(gmrf_t *gmrf, gmrf_iface_t *iface, const void *data, size_t len) {
- auto src_iface = iface->iface.lock();
- assert(src_iface);
+ auto src_iface = iface->shared_from_this();
for (auto dest_iface : src_iface->net->interfaces) {
if (dest_iface != src_iface)
@@ -71,8 +69,7 @@ bool gmrf_iface_send_bc(gmrf_t *gmrf, gmrf_iface_t *iface, const void *data, siz
}
void gmrf_schedule(gmrf_t *gmrf, gmrf_scheduled_func f, void *arg, unsigned delay) {
- auto node = gmrf->node.lock();
- assert(node);
+ auto node = gmrf->shared_from_this();
std::shared_ptr<MMSS::scheduled_t> scheduled = std::make_shared<MMSS::scheduled_t>();
@@ -80,7 +77,7 @@ void gmrf_schedule(gmrf_t *gmrf, gmrf_scheduled_func f, void *arg, unsigned dela
scheduled->f = f;
scheduled->arg = arg;
- gmrf->mmss->scheduled_queue.put(std::move(scheduled), gmrf->mmss->now()+delay);
+ gmrf->mmss->event_queue.put(std::move(scheduled), gmrf->mmss->now()+delay);
}
gmrf_time_t gmrf_now(gmrf_t *gmrf) {