loolwsd/LOOLBroker.cpp | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-)
New commits: commit 71d75571c3b758b584cafc522e3309a7d37b0f9b Author: Henry Castro <[email protected]> Date: Sun Aug 2 21:32:04 2015 -0400 loolwsd: test case #1 lok_init_2 is initialized in loolbroker process. diff --git a/loolwsd/LOOLBroker.cpp b/loolwsd/LOOLBroker.cpp index c0a09f0..2ba22f4 100644 --- a/loolwsd/LOOLBroker.cpp +++ b/loolwsd/LOOLBroker.cpp @@ -21,6 +21,10 @@ #include <Poco/Process.h> #include <Poco/Thread.h> #include <Poco/SharedMemory.h> +#include <Poco/NamedMutex.h> + +#define LOK_USE_UNSTABLE_API +#include <LibreOfficeKit/LibreOfficeKitInit.h> #include "Util.hpp" @@ -239,6 +243,7 @@ static void startupLibreOfficeKit(int nLOKits, std::string loSubPath, Poco::UInt } static int timeoutCounter = 0; +Poco::NamedMutex _namedMutexLOOL("loolwsd"); // Broker process int main(int argc, char** argv) @@ -399,7 +404,21 @@ int main(int argc, char** argv) Thread::sleep(std::stoul(std::getenv("SLEEPFORDEBUGGER")) * 1000); } - void* dlOffice = dlopen(Path("/"+ loSubPath + "/program", LIB_SOFFICEAPP).toString().c_str(), RTLD_NOW); + _namedMutexLOOL.lock(); +#ifdef __APPLE__ + LibreOfficeKit *loKit(lok_init_2(("/" + loSubPath + "/Frameworks").c_str(), "file:///user")); +#else + LibreOfficeKit *loKit(lok_init_2(("/" + loSubPath + "/program").c_str(), "file:///user")); +#endif + + if (!loKit) + { + std::cout << Util::logPrefix() + "LibreOfficeKit initialization failed" << std::endl; + exit(-1); + } + _namedMutexLOOL.unlock(); + + /*void* dlOffice = dlopen(Path("/"+ loSubPath + "/program", LIB_SOFFICEAPP).toString().c_str(), RTLD_NOW); if ( !dlOffice ) { std::cout << Util::logPrefix() << " Failed to load library :" << LIB_SOFFICEAPP << std::endl; @@ -425,7 +444,7 @@ int main(int argc, char** argv) { std::cout << Util::logPrefix() << " Failed to load library :" << LIB_SDLO << std::endl; exit(-1); - } + }*/ startupLibreOfficeKit(_numPreSpawnedChildren, loSubPath, _childId); @@ -486,10 +505,10 @@ int main(int argc, char** argv) Process::requestTermination(i.first); } - dlclose(dlOffice); - dlclose(dlSC); - dlclose(dlSW); - dlclose(dlSD); + //dlclose(dlOffice); + //dlclose(dlSC); + //dlclose(dlSW); + //dlclose(dlSD); std::cout << Util::logPrefix() << "loolbroker finished OK!" << std::endl; return 0; _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
