net/Socket.hpp |    6 ++++++
 1 file changed, 6 insertions(+)

New commits:
commit c30fb670d800d9f3ef9d6006af5308111320fd9a
Author: Michael Meeks <michael.me...@collabora.com>
Date:   Fri Mar 10 18:20:51 2017 +0000

    Work on LOOL_CHECK_THREADS=1 a little.
    
    The situation made more problematic since the std::thread is only
    created in startThread - so getting ownership right before then in
    Socket is problematic.

diff --git a/net/Socket.hpp b/net/Socket.hpp
index 9259d88..87b8dea 100644
--- a/net/Socket.hpp
+++ b/net/Socket.hpp
@@ -354,6 +354,11 @@ public:
                 // Copy the new sockets over and clear.
                 _pollSockets.insert(_pollSockets.end(),
                                     _newSockets.begin(), _newSockets.end());
+
+                // Update thread ownership.
+                for (auto &i : _newSockets)
+                    i->setThreadOwner(std::this_thread::get_id());
+
                 _newSockets.clear();
 
                 // Extract list of callbacks to process
@@ -395,6 +400,7 @@ public:
         if (newSocket)
         {
             std::lock_guard<std::mutex> lock(_mutex);
+            // Beware - _thread may not be created & started yet.
             newSocket->setThreadOwner(_thread.get_id());
             LOG_DBG("Inserting socket #" << newSocket->getFD() << " into " << 
_name);
             _newSockets.emplace_back(newSocket);
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to