[Libreoffice-commits] online.git: loolwsd/Common.hpp loolwsd/LOOLBroker.cpp loolwsd/LOOLKit.cpp loolwsd/LOOLWSD.cpp

Ashod Nakashian ashod.nakashian at collabora.co.uk
Thu Jan 21 08:02:22 PST 2016


 loolwsd/Common.hpp     |    2 +-
 loolwsd/LOOLBroker.cpp |    4 ++--
 loolwsd/LOOLKit.cpp    |    4 ++--
 loolwsd/LOOLWSD.cpp    |   10 +++-------
 4 files changed, 8 insertions(+), 12 deletions(-)

New commits:
commit d2bde985cc35b3f8f836fc68579eb78379a52961
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date:   Thu Jan 21 08:54:56 2016 -0500

    loolwsd: poll timeout of 500ms and handling priority events
    
    Change-Id: Iadf449ee62700e1ac5da2be8c73c674657633808
    Reviewed-on: https://gerrit.libreoffice.org/21679
    Reviewed-by: Ashod Nakashian <ashnakash at gmail.com>
    Tested-by: Ashod Nakashian <ashnakash at gmail.com>

diff --git a/loolwsd/Common.hpp b/loolwsd/Common.hpp
index 1fae869..ff98222 100644
--- a/loolwsd/Common.hpp
+++ b/loolwsd/Common.hpp
@@ -18,7 +18,7 @@ constexpr int MASTER_PORT_NUMBER = 9981;
 constexpr int INTERVAL_PROBES = 10;
 constexpr int MAINTENANCE_INTERVAL = 1;
 constexpr int CHILD_TIMEOUT_SECS = 10;
-constexpr int POLL_TIMEOUT = 1000000;
+constexpr int POLL_TIMEOUT_MS = 500;
 
 /// Pipe and Socket read buffer size.
 /// Should be large enough for ethernet packets
diff --git a/loolwsd/LOOLBroker.cpp b/loolwsd/LOOLBroker.cpp
index 28a0e2f..1a3954b 100644
--- a/loolwsd/LOOLBroker.cpp
+++ b/loolwsd/LOOLBroker.cpp
@@ -429,13 +429,13 @@ public:
         {
             if ( pStart == pEnd )
             {
-                if (poll(&aPoll, 1, -1) < 0)
+                if (poll(&aPoll, 1, POLL_TIMEOUT_MS) < 0)
                 {
                     Log::error("Failed to poll pipe [" + FIFO_FILE + "].");
                     continue;
                 }
                 else
-                if (aPoll.revents & POLLIN)
+                if (aPoll.revents & (POLLIN | POLLPRI))
                 {
                     nBytes = Util::readFIFO(readerBroker, aBuffer, sizeof(aBuffer));
                     if (nBytes < 0)
diff --git a/loolwsd/LOOLKit.cpp b/loolwsd/LOOLKit.cpp
index 706b8f2..bceb1fa 100644
--- a/loolwsd/LOOLKit.cpp
+++ b/loolwsd/LOOLKit.cpp
@@ -812,13 +812,13 @@ void lokit_main(const std::string &loSubPath, const std::string& jailId, const s
                 aPoll.events = POLLIN;
                 aPoll.revents = 0;
 
-                if (poll(&aPoll, 1, -1) < 0)
+                if (poll(&aPoll, 1, POLL_TIMEOUT_MS) < 0)
                 {
                     Log::error("Failed to poll pipe [" + pipe + "].");
                     continue;
                 }
                 else
-                if (aPoll.revents & POLLIN)
+                if (aPoll.revents & (POLLIN | POLLPRI))
                 {
                     nBytes = Util::readFIFO(readerBroker, aBuffer, sizeof(aBuffer));
                     if (nBytes < 0)
diff --git a/loolwsd/LOOLWSD.cpp b/loolwsd/LOOLWSD.cpp
index f3187d7..c0af9e3 100644
--- a/loolwsd/LOOLWSD.cpp
+++ b/loolwsd/LOOLWSD.cpp
@@ -200,21 +200,17 @@ void SocketProcessor(std::shared_ptr<WebSocket> ws,
 {
     Log::info("Starting Socket Processor.");
 
-    const Poco::Timespan waitTime(POLL_TIMEOUT);
+    const Poco::Timespan waitTime(POLL_TIMEOUT_MS);
     try
     {
         int flags = 0;
         int n = 0;
-        bool pollTimeout = true;
         ws->setReceiveTimeout(0);
         do
         {
             char buffer[200000]; //FIXME: Dynamic?
 
-            // We should care about timeout only when we have heartbeat
-            // support. For now, we can't predict when the next message
-            // should arrive.
-            if ((pollTimeout = ws->poll(waitTime, Socket::SELECT_READ)))
+            if (ws->poll(waitTime, Socket::SELECT_READ))
             {
                 n = ws->receiveFrame(buffer, sizeof(buffer), flags);
 
@@ -295,7 +291,7 @@ void SocketProcessor(std::shared_ptr<WebSocket> ws,
         while (!TerminationFlag &&
                (flags & WebSocket::FRAME_OP_BITMASK) != WebSocket::FRAME_OP_CLOSE);
         Log::debug() << "Finishing SocketProcessor. TerminationFlag: " << TerminationFlag
-                     << ", pollTimeout: " << pollTimeout << ", payload size: " << n
+                     << ", payload size: " << n
                      << ", flags: " << std::hex << flags << Log::end;
     }
     catch (const WebSocketException& exc)


More information about the Libreoffice-commits mailing list