Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -331,6 +331,7 @@ coolwsd_inproc_SOURCES = $(coolwsd_sources) \
$(coolforkit_sources) \
wsd/coolwsd-inproc.cpp

coolwsd_inproc_CPPFLAGS = $(AM_CPPFLAGS) -DENABLE_INPROC=1
coolwsd_inproc_LDADD = libsimd.a libkitwsdglobals.a

if !ENABLE_SSL
Expand Down
3 changes: 2 additions & 1 deletion common/Log-poco.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -594,7 +594,8 @@ namespace Log
{
if constexpr (Util::isMobileApp())
return;
if (!Util::isKitInProcess())

if constexpr (!Util::isKitInProcess())
{
// Allow other threads time to exit.
for (int i = 0; i < 10 && ThreadLocalBufferCount > 1; ++i)
Expand Down
4 changes: 0 additions & 4 deletions common/Util.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -185,10 +185,6 @@ namespace Util
return std::getenv("DISPLAY") != nullptr;
}

bool kitInProcess = false;
void setKitInProcess(bool value) { kitInProcess = value; }
bool isKitInProcess() { return isFuzzing() || isMobileApp() || kitInProcess; }

std::string replace(std::string result, const std::string_view from, const std::string_view to)
{
const std::size_t fromSize = from.size();
Expand Down
10 changes: 8 additions & 2 deletions common/Util.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -1108,8 +1108,14 @@ int main(int argc, char**argv)
#endif
}

void setKitInProcess(bool value);
bool isKitInProcess();
constexpr bool isKitInProcess()
{
#if defined(ENABLE_INPROC) && ENABLE_INPROC
return true;
#else
return isFuzzing() || isMobileApp();
#endif // ENABLE_INPROC
}

/**
* Splits string into vector<string>. Does not accept referenced variables for easy
Expand Down
10 changes: 5 additions & 5 deletions kit/ForKit.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -309,7 +309,7 @@ bool haveCorrectCapabilities()
/// Check if some previously forked kids have died.
void cleanupChildren(const std::string& childRoot)
{
if (Util::isKitInProcess())
if constexpr (Util::isKitInProcess())
return;

pid_t exitedChildPid;
Expand Down Expand Up @@ -550,7 +550,7 @@ int createCOKit(const std::string& childRoot, const std::string& sysTemplate,
const auto startForkingTime = std::chrono::steady_clock::now();

pid_t childPid = 0;
if (Util::isKitInProcess())
if constexpr (Util::isKitInProcess())
{
std::thread([childRoot, jailId = std::move(jailId), configId, sysTemplate,
loTemplate, queryVersion
Expand Down Expand Up @@ -829,7 +829,7 @@ int forkit_main(int argc, char** argv)

Util::sleepFromEnvIfSet("Forkit", "SLEEPFORDEBUGGER");

if (!Util::isKitInProcess())
if constexpr (!Util::isKitInProcess())
{
// Already set by COOLWSD.cpp in kit in process
SigUtil::setFatalSignals("forkit startup of " + Util::getCoolVersion() + ' ' +
Expand All @@ -848,7 +848,7 @@ int forkit_main(int argc, char** argv)
if (simd::init())
simd_deltaInit();

if (!Util::isKitInProcess())
if constexpr (!Util::isKitInProcess())
Util::setApplicationPath(Poco::Path(argv[0]).parent().toString());

// Initialization
Expand Down Expand Up @@ -1042,7 +1042,7 @@ int forkit_main(int argc, char** argv)
JailUtil::SysTemplate::setupRandomDeviceLinks(sysTemplate);
#endif

if (!Util::isKitInProcess())
if constexpr (!Util::isKitInProcess())
{
// Parse the configuration.
char* const conf = std::getenv("COOL_CONFIG");
Expand Down
8 changes: 4 additions & 4 deletions kit/Kit.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2772,7 +2772,7 @@ void Document::flushAndExit(int code)
{
flushTraceEventRecordings();
_deltaPool.stop();
if (!Util::isKitInProcess())
if constexpr (!Util::isKitInProcess())
Util::forcedExit(code);
else
SigUtil::setTerminationFlag();
Expand Down Expand Up @@ -3442,7 +3442,7 @@ void lokit_main(
{
#if !MOBILEAPP

if (!Util::isKitInProcess())
if constexpr (!Util::isKitInProcess())
{
// Already set by COOLWSD.cpp
SigUtil::setFatalSignals("kit startup of " + Util::getCoolVersion() + ' ' +
Expand Down Expand Up @@ -3925,7 +3925,7 @@ void lokit_main(
if (!initFunction)
initFunction = cok_init_2;

if (!Util::isKitInProcess())
if constexpr (!Util::isKitInProcess())
kit = UnitKit::get().cok_init(instdir, userdir, initFunction);
if (!kit)
kit = initFunction(instdir, userdir);
Expand Down Expand Up @@ -4183,7 +4183,7 @@ void lokit_main(

LOG_INF("Kit process for Jail [" << jailId << "] finished.");
flushTraceEventRecordings();
if (!Util::isKitInProcess())
if constexpr (!Util::isKitInProcess())
Util::forcedExit(EX_OK);

#endif
Expand Down
2 changes: 1 addition & 1 deletion kit/KitWebSocket.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ void KitWebSocketHandler::handleMessage(const std::vector<char>& data)
if (_document)
_document->joinThreads();
_document.reset();
if (!Util::isKitInProcess())
if constexpr (!Util::isKitInProcess())
Util::forcedExit(EX_OK);
else
SigUtil::setTerminationFlag();
Expand Down
2 changes: 0 additions & 2 deletions test/ClientTestStubs.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,6 @@
#include <wsd/RequestDetails.hpp>

// ----- Kit stubs -----
void setKitInProcess() {}

#include <kit/ChildSession.hpp>
bool ChildSession::NoCapsForKit = true;

Expand Down
2 changes: 1 addition & 1 deletion wsd/Admin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1107,7 +1107,7 @@ void Admin::cleanupResourceConsumingDocs()

void Admin::cleanupLostKits()
{
if (Util::isKitInProcess())
if constexpr (Util::isKitInProcess())
return; // we might look lost ourselves.

static std::map<pid_t, std::time_t> mapKitsLost;
Expand Down
21 changes: 10 additions & 11 deletions wsd/COOLWSD.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -546,7 +546,7 @@ void COOLWSD::cleanupDocBrokers()
/// Forks as many children as requested.
static void forkChildren(const std::string& configId, const int number)
{
if (Util::isKitInProcess())
if constexpr (Util::isKitInProcess())
return;

LOG_TRC("Request forkit to spawn " << number << " new child(ren)");
Expand All @@ -572,7 +572,7 @@ static bool queueMessageToForKit(const std::string& message);

bool COOLWSD::ensureSubForKit(const std::string& configId)
{
if (Util::isKitInProcess())
if constexpr (Util::isKitInProcess())
return false;

LOG_TRC("Request forkit to spawn subForKit " << configId);
Expand All @@ -594,7 +594,7 @@ bool COOLWSD::ensureSubForKit(const std::string& configId)
/// Cleans up dead children.
static void cleanupChildren()
{
if (Util::isKitInProcess())
if constexpr (Util::isKitInProcess())
return;

Util::assertIsLocked(NewChildrenMutex);
Expand Down Expand Up @@ -2087,7 +2087,7 @@ void COOLWSD::innerInitialize(Poco::Util::Application& self)
ConfigUtil::getConfigValue("indirection_endpoint.geolocation_setup.enable", false);

#if ENABLE_DEBUG
if (Util::isKitInProcess())
if constexpr (Util::isKitInProcess())
SingleKit = true;
#endif
#endif
Expand Down Expand Up @@ -2650,7 +2650,7 @@ bool COOLWSD::checkAndRestoreForKit()
}
}

if (Util::isKitInProcess())
if constexpr (Util::isKitInProcess())
return true;

int status;
Expand Down Expand Up @@ -2937,7 +2937,7 @@ bool COOLWSD::createForKit()
// Always reap first, in case we haven't done so yet.
if (ForKitProcId != -1)
{
if (Util::isKitInProcess())
if constexpr (Util::isKitInProcess())
return true;
int status;
waitpid(ForKitProcId, &status, WUNTRACED | WNOHANG);
Expand Down Expand Up @@ -3796,7 +3796,7 @@ void COOLWSD::innerMain()
// No need to "have at least one child" beforehand on mobile
#if !MOBILEAPP

if (!Util::isKitInProcess())
if constexpr (!Util::isKitInProcess())
{
// Make sure we have at least one child before moving forward.
std::unique_lock<std::mutex> lock(NewChildrenMutex);
Expand Down Expand Up @@ -4143,7 +4143,7 @@ void COOLWSD::innerMain()
}

#if !MOBILEAPP
if (!Util::isKitInProcess())
if constexpr (!Util::isKitInProcess())
{
// Terminate child processes
LOG_INF("Requesting forkit process " << ForKitProcId << " to terminate.");
Expand Down Expand Up @@ -4188,7 +4188,7 @@ void COOLWSD::innerMain()
SigUtil::addActivity("terminated unused children");

#if !MOBILEAPP
if (!Util::isKitInProcess())
if constexpr (!Util::isKitInProcess())
{
SigUtil::addActivity("waiting for forkit to exit");

Expand Down Expand Up @@ -4463,7 +4463,7 @@ void forwardSigUsr2()
#if !MOBILEAPP
LOG_TRC("forwardSigUsr2");

if (Util::isKitInProcess())
if constexpr (Util::isKitInProcess())
return;

Util::assertIsLocked(DocBrokersMutex);
Expand Down Expand Up @@ -4515,7 +4515,6 @@ int main(int argc, char** argv)
{
SigUtil::setUserSignals();
SigUtil::setFatalSignals("wsd " + Util::getCoolVersion() + ' ' + Util::getCoolVersionHash());
setKitInProcess();

try
{
Expand Down
2 changes: 0 additions & 2 deletions wsd/COOLWSD.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -319,8 +319,6 @@ class COOLWSD final : public Poco::Util::ServerApplication,
std::unordered_map<std::string, std::string> _overrideSettings;
};

void setKitInProcess();

int createForkit(const std::string& forKitPath, const StringVector& args);

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
2 changes: 0 additions & 2 deletions wsd/coolwsd-fork.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,6 @@
#include <common/Util.hpp>
#include <wsd/COOLWSD.hpp>

void setKitInProcess() { Util::setKitInProcess(false); }

int createForkit(const std::string& forKitPath, const StringVector& args)
{
// create forkit in a process
Expand Down
2 changes: 0 additions & 2 deletions wsd/coolwsd-inproc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,6 @@
#include <COOLWSD.hpp>
#include <Kit.hpp>

void setKitInProcess() { Util::setKitInProcess(true); }

int createForkit(const std::string& forKitPath, const StringVector& args)
{
// create forkit in a thread
Expand Down
Loading