Keep Waker around for longer so it works better (#2184).
authorCarl Hetherington <cth@carlh.net>
Wed, 16 Feb 2022 23:57:54 +0000 (00:57 +0100)
committerCarl Hetherington <cth@carlh.net>
Wed, 16 Feb 2022 23:57:54 +0000 (00:57 +0100)
src/lib/encode_server.cc
src/lib/encode_server.h

index 24ba5bc451449bc59ab63d2c71d8ed182eb56a13..cd471d171a7cd24808da05d8e36a6e6698b38740 100644 (file)
@@ -336,8 +336,7 @@ EncodeServer::handle (shared_ptr<Socket> socket)
 {
        boost::mutex::scoped_lock lock (_mutex);
 
-       Waker waker;
-       waker.nudge ();
+       _waker.nudge ();
 
        /* Wait until the queue has gone down a bit */
        while (_queue.size() >= _worker_threads.size() * 2 && !_terminate) {
index 6e24a19849827cdde20c276e79d331b8a2cd1ab5..0ca60f3f3debf8c0b423618dcccc9d0f908d3955 100644 (file)
  */
 
 
-#include "server.h"
+#include "cross.h"
 #include "exception_store.h"
-#include <boost/thread.hpp>
+#include "server.h"
 #include <boost/asio.hpp>
+#include <boost/thread.hpp>
 #include <boost/thread/condition.hpp>
 #include <string>
 
 
-class Socket;
 class Log;
+class Socket;
 
 
 /** @class EncodeServer
@@ -65,6 +66,7 @@ private:
        boost::condition _empty_condition;
        bool _verbose;
        int _num_threads;
+       Waker _waker;
 
        struct Broadcast {