diff --git a/lib/nodes/ethercat.cpp b/lib/nodes/ethercat.cpp index 11dbba864..d6dfe4d1f 100644 --- a/lib/nodes/ethercat.cpp +++ b/lib/nodes/ethercat.cpp @@ -372,10 +372,10 @@ int villas::node::ethercat_init(NodeCompat *n) { w->domain_pd = nullptr; w->domain_regs = nullptr; - // Placement new for C++ objects - new (&w->send) std::atomic(); - new (&w->thread) std::thread(); - new (&w->task) Task(CLOCK_REALTIME); + /* Placement new for C++ objects */ + new (&w->send) std::atomic(); + new (&w->thread) std::thread(); + new (&w->task) Task(); return 0; } diff --git a/lib/nodes/file.cpp b/lib/nodes/file.cpp index 098e37289..4bf64c90a 100644 --- a/lib/nodes/file.cpp +++ b/lib/nodes/file.cpp @@ -415,7 +415,9 @@ int villas::node::file_poll_fds(NodeCompat *n, int fds[]) { int villas::node::file_init(NodeCompat *n) { auto *f = n->getData(); - new (&f->task) Task(CLOCK_REALTIME); + // We require a real-time clock here as we can sync against the + // timestamps in the file. + new (&f->task) Task(CLOCK_REALTIME); // Default values f->rate = 0; diff --git a/lib/nodes/ngsi.cpp b/lib/nodes/ngsi.cpp index 8fed2e405..7fd9665cb 100644 --- a/lib/nodes/ngsi.cpp +++ b/lib/nodes/ngsi.cpp @@ -752,7 +752,7 @@ int villas::node::ngsi_init(NodeCompat *n) { int ret; auto *i = n->getData(); - new (&i->task) Task(CLOCK_REALTIME); + new (&i->task) Task(); ret = list_init(&i->in.signals); if (ret) diff --git a/lib/nodes/redis.cpp b/lib/nodes/redis.cpp index 0c33f5d78..447ba8472 100644 --- a/lib/nodes/redis.cpp +++ b/lib/nodes/redis.cpp @@ -256,9 +256,9 @@ int villas::node::redis_init(NodeCompat *n) { r->notify = true; r->rate = 1.0; - new (&r->options) sw::redis::ConnectionOptions; - new (&r->task) Task(CLOCK_REALTIME); - new (&r->key) std::string(); + new (&r->options) sw::redis::ConnectionOptions; + new (&r->task) Task(); + new (&r->key) std::string(); /* We need a timeout in order for RedisConnection::loop() to properly * terminate after the node is stopped */ diff --git a/lib/nodes/signal.cpp b/lib/nodes/signal.cpp index 23e9a898b..09c6ae6a8 100644 --- a/lib/nodes/signal.cpp +++ b/lib/nodes/signal.cpp @@ -175,7 +175,7 @@ Signal::Ptr SignalNodeSignal::toSignal(Signal::Ptr tpl) const { } SignalNode::SignalNode(const uuid_t &id, const std::string &name) - : Node(id, name), task(CLOCK_MONOTONIC), rt(1), rate(10), + : Node(id, name), task(), rt(1), rate(10), monitor_missed(true), limit(-1), missed_steps(0) {} int SignalNode::prepare() { diff --git a/lib/nodes/signal_v1.cpp b/lib/nodes/signal_v1.cpp index 8c745cba6..ba758572d 100644 --- a/lib/nodes/signal_v1.cpp +++ b/lib/nodes/signal_v1.cpp @@ -78,7 +78,7 @@ static const char *signal_node_type_str(enum signal_node::SignalType type) { int villas::node::signal_node_init(NodeCompat *n) { auto *s = n->getData(); - new (&s->task) Task(CLOCK_MONOTONIC); + new (&s->task) Task(); s->rt = 1; s->limit = -1; diff --git a/lib/nodes/stats.cpp b/lib/nodes/stats.cpp index aae148fa2..34ebc3e1b 100644 --- a/lib/nodes/stats.cpp +++ b/lib/nodes/stats.cpp @@ -137,7 +137,7 @@ int villas::node::stats_node_init(NodeCompat *n) { int ret; auto *s = n->getData(); - new (&s->task) Task(CLOCK_MONOTONIC); + new (&s->task) Task(); ret = list_init(&s->signals); if (ret) diff --git a/lib/super_node.cpp b/lib/super_node.cpp index a4284bddb..bfdd49a41 100644 --- a/lib/super_node.cpp +++ b/lib/super_node.cpp @@ -41,7 +41,7 @@ SuperNode::SuperNode() #endif #endif priority(0), affinity(0), hugepages(DEFAULT_NR_HUGEPAGES), statsRate(1.0), - task(CLOCK_REALTIME), started(time_now()) { + task(), started(time_now()) { int ret; char hname[128];