diff options
Diffstat (limited to 'mmss/queue.hpp')
-rw-r--r-- | mmss/queue.hpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/mmss/queue.hpp b/mmss/queue.hpp index 1b1d2af..8efaa97 100644 --- a/mmss/queue.hpp +++ b/mmss/queue.hpp @@ -39,7 +39,7 @@ template<typename T> class timeout_queue_t { std::shared_ptr<T> data; uint64_t timeout; - element_t(const std::shared_ptr<T> &data0, uint64_t timeout0) : data(data0), timeout(timeout0) {} + element_t(std::shared_ptr<T> &&data0, uint64_t timeout0) : data(std::move(data0)), timeout(timeout0) {} }; context_t *mmss; @@ -49,13 +49,13 @@ template<typename T> class timeout_queue_t { public: timeout_queue_t(context_t *mmss0) : mmss(mmss0) {} - void put(const std::shared_ptr<T> &data, uint64_t timeout) { + void put(std::shared_ptr<T> &&data, uint64_t timeout) { auto it = queue.begin(), end = queue.end(); while (it != end && it->timeout < timeout) ++it; - queue.insert(it, element_t(data, timeout)); + queue.emplace(it, std::move(data), timeout); } std::shared_ptr<T> get() { |