diff --git a/src/manager.cpp b/src/manager.cpp index 09b24dab0d2ef913396952e26462156b1c65e4c4..c4e35c8ccee5beeae786a8eaea79fe1521d105e2 100644 --- a/src/manager.cpp +++ b/src/manager.cpp @@ -1657,21 +1657,25 @@ Manager::ioContext() const } void -Manager::addTask(std::function<bool()>&& task) +Manager::addTask(std::function<bool()>&& task, const char* filename, uint32_t linum) { - pimpl_->scheduler_.scheduleAtFixedRate(std::move(task), std::chrono::milliseconds(30)); + pimpl_->scheduler_.scheduleAtFixedRate(std::move(task), std::chrono::milliseconds(30), + filename, linum); } std::shared_ptr<Task> -Manager::scheduleTask(std::function<void()>&& task, std::chrono::steady_clock::time_point when) +Manager::scheduleTask(std::function<void()>&& task, std::chrono::steady_clock::time_point when, + const char* filename, uint32_t linum) { - return pimpl_->scheduler_.schedule(std::move(task), when); + return pimpl_->scheduler_.schedule(std::move(task), when, filename, linum); } std::shared_ptr<Task> -Manager::scheduleTaskIn(std::function<void()>&& task, std::chrono::steady_clock::duration timeout) +Manager::scheduleTaskIn(std::function<void()>&& task, std::chrono::steady_clock::duration timeout, + const char* filename, uint32_t linum) { - return pimpl_->scheduler_.scheduleIn(std::move(task), timeout); + return pimpl_->scheduler_.scheduleIn(std::move(task), timeout, + filename, linum); } // Must be invoked periodically by a timer from the main event loop diff --git a/src/manager.h b/src/manager.h index f560e570fe767391f696d8cdedab7c4d324a56f2..046dc522accf7987a88e035c56e1379c04b8ab94 100644 --- a/src/manager.h +++ b/src/manager.h @@ -47,6 +47,8 @@ #include <string> #include <vector> +#include "trace-tools.h" + namespace asio { class io_context; } @@ -785,11 +787,19 @@ public: std::shared_ptr<asio::io_context> ioContext() const; - void addTask(std::function<bool()>&& task); + void addTask(std::function<bool()>&& task, + const char *filename=CURRENT_FILENAME(), + uint32_t linum=CURRENT_LINE()); + std::shared_ptr<Task> scheduleTask(std::function<void()>&& task, - std::chrono::steady_clock::time_point when); + std::chrono::steady_clock::time_point when, + const char* filename=CURRENT_FILENAME(), + uint32_t linum=CURRENT_LINE()); + std::shared_ptr<Task> scheduleTaskIn(std::function<void()>&& task, - std::chrono::steady_clock::duration timeout); + std::chrono::steady_clock::duration timeout, + const char* filename=CURRENT_FILENAME(), + uint32_t linum=CURRENT_LINE()); std::map<std::string, std::string> getNearbyPeers(const std::string& accountID); @@ -884,9 +894,12 @@ private: // Helper to install a callback to be called once by the main event loop template<typename Callback> static void -runOnMainThread(Callback&& cb) +runOnMainThread(Callback&& cb, + const char *filename=CURRENT_FILENAME(), + uint32_t linum=CURRENT_LINE()) { - Manager::instance().scheduler().run([cb = std::forward<Callback>(cb)]() mutable { cb(); }); + Manager::instance().scheduler().run([cb = std::forward<Callback>(cb)]() mutable { cb(); }, + filename, linum); } } // namespace jami