Commit 67ddd597 authored by gabime's avatar gabime

Move msg and remove spinning

parent 78ea362e
...@@ -78,7 +78,7 @@ struct async_msg ...@@ -78,7 +78,7 @@ struct async_msg
} }
// copy into log_msg // copy into log_msg
void to_log_msg(log_msg &msg) void to_log_msg(log_msg &&msg)
{ {
msg.logger_name = &worker_ptr->name(); msg.logger_name = &worker_ptr->name();
msg.level = level; msg.level = level;
...@@ -151,14 +151,7 @@ public: ...@@ -151,14 +151,7 @@ public:
return _msg_counter.load(std::memory_order_relaxed); return _msg_counter.load(std::memory_order_relaxed);
} }
void wait_empty_q()
{
auto last_op = clock_type::now();
while (!_q.is_empty())
{
sleep_or_yield(clock_type::now(), last_op);
}
}
private: private:
std::atomic<size_t> _msg_counter; // total # of messages processed in this pool std::atomic<size_t> _msg_counter; // total # of messages processed in this pool
...@@ -208,7 +201,7 @@ private: ...@@ -208,7 +201,7 @@ private:
default: default:
{ {
popped_async_msg.to_log_msg(msg); popped_async_msg.to_log_msg(std::move(msg));
auto worker = std::move(popped_async_msg.worker_ptr); auto worker = std::move(popped_async_msg.worker_ptr);
worker->_backend_log(msg); worker->_backend_log(msg);
_msg_counter.fetch_add(1, std::memory_order_relaxed); _msg_counter.fetch_add(1, std::memory_order_relaxed);
...@@ -229,18 +222,12 @@ private: ...@@ -229,18 +222,12 @@ private:
using std::chrono::milliseconds; using std::chrono::milliseconds;
auto time_since_op = now - last_op_time; auto time_since_op = now - last_op_time;
// spin upto 50 micros
if (time_since_op <= microseconds(50))
{
return;
}
// yield upto 150 micros // yield upto 150 micros
if (time_since_op <= microseconds(100)) if (time_since_op <= microseconds(150))
{ {
return std::this_thread::yield(); return std::this_thread::yield();
} }
// sleep for 20 ms upto 200 ms // sleep for 20 ms upto 200 ms
if (time_since_op <= milliseconds(200)) if (time_since_op <= milliseconds(200))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment