[Libreoffice-commits] online.git: Branch 'private/hcvcastro/forking' - loolwsd/LOOLWSD.cpp loolwsd/LOOLWSD.hpp
Henry Castro
hcastro at collabora.com
Sun Sep 27 15:21:51 PDT 2015
loolwsd/LOOLWSD.cpp | 14 ++++++++++++++
loolwsd/LOOLWSD.hpp | 2 ++
2 files changed, 16 insertions(+)
New commits:
commit d621a49ffee698473283d56d88d00651b62ae116
Author: Henry Castro <hcastro at collabora.com>
Date: Sun Sep 27 18:21:15 2015 -0400
loolwsd: create writer pipe to send messages to broker process
diff --git a/loolwsd/LOOLWSD.cpp b/loolwsd/LOOLWSD.cpp
index 0684285..1010efa 100644
--- a/loolwsd/LOOLWSD.cpp
+++ b/loolwsd/LOOLWSD.cpp
@@ -424,6 +424,7 @@ public:
int LOOLWSD::portNumber = DEFAULT_CLIENT_PORT_NUMBER;
int LOOLWSD::timeoutCounter = 0;
+int LOOLWSD::writerBroker = -1;
std::string LOOLWSD::cache = LOOLWSD_CACHEDIR;
std::string LOOLWSD::sysTemplate;
std::string LOOLWSD::loTemplate;
@@ -443,6 +444,7 @@ int LOOLWSD::uid = 0;
const std::string LOOLWSD::CHILD_URI = "/loolws/child/";
const std::string LOOLWSD::PIDLOG = "/tmp/loolwsd.pid";
const std::string LOOLWSD::LOKIT_PIDLOG = "/tmp/lokit.pid";
+const std::string LOOLWSD::FIFO_FILE = "/tmp/loolwsdfifo";
LOOLWSD::LOOLWSD() :
_childId(0)
@@ -640,6 +642,12 @@ int LOOLWSD::main(const std::vector<std::string>& args)
filePID << Process::id();
}
+ if (!File(FIFO_FILE).exists() && mkfifo(FIFO_FILE.c_str(), 0666) == -1)
+ {
+ std::cout << Util::logPrefix() << "Fail to create pipe FIFO" << std::endl;
+ return Application::EXIT_UNAVAILABLE;
+ }
+
std::unique_lock<std::mutex> rngLock(_rngMutex);
_childId = (((Poco::UInt64)_rng.next()) << 32) | _rng.next() | 1;
rngLock.unlock();
@@ -669,6 +677,12 @@ int LOOLWSD::main(const std::vector<std::string>& args)
srv2.start();
+ if ( (writerBroker = open(FIFO_FILE.c_str(), O_WRONLY) ) < 0 )
+ {
+ std::cout << Util::logPrefix() << "Pipe opened for writing" << strerror(errno) << std::endl;
+ return Application::EXIT_UNAVAILABLE;
+ }
+
_namedMutexLOOL.unlock();
while (MasterProcessSession::_childProcesses.size() > 0)
diff --git a/loolwsd/LOOLWSD.hpp b/loolwsd/LOOLWSD.hpp
index 4470968..6e58e4d 100644
--- a/loolwsd/LOOLWSD.hpp
+++ b/loolwsd/LOOLWSD.hpp
@@ -31,6 +31,7 @@ public:
// statics
static int portNumber;
static int timeoutCounter;
+ static int writerBroker;
static bool doTest;
static std::string cache;
static std::string sysTemplate;
@@ -45,6 +46,7 @@ public:
static const int MAINTENANCE_INTERVAL = 1;
static const std::string CHILD_URI;
static const std::string PIDLOG;
+ static const std::string FIFO_FILE;
static const std::string LOKIT_PIDLOG;
static Poco::NamedMutex _namedMutexLOOL;
More information about the Libreoffice-commits
mailing list