Switch to side-by-side view

--- a/src/common/rclinit.cpp
+++ b/src/common/rclinit.cpp
@@ -149,17 +149,18 @@
     ExecCmd::useVfork(true);
 #else
     // Keep threads init behind log init, but make sure it's done before
-    // we do the vfork choice !
+    // we do the vfork choice ! The latter is not used any more actually, 
+    // we always use vfork except if forbidden by config.
     config->initThrConf();
-    bool intern_noThr = config->getThrConf(RclConfig::ThrIntern).first == -1;
-    bool split_noThr =  config->getThrConf(RclConfig::ThrSplit).first == -1;
-    bool write_noThr = config->getThrConf(RclConfig::ThrDbWrite).first == -1;
-    if (intern_noThr && split_noThr && write_noThr) {
-	LOGDEB0(("rclinit: single-threaded execution: use vfork\n"));
+
+    bool novfork;
+    config->getConfParam("novfork", &novfork);
+    if (novfork) {
+	LOGDEB0(("rclinit: will use fork() for starting commands\n"));
+        ExecCmd::useVfork(false);
+    } else {
+	LOGDEB0(("rclinit: will use vfork() for starting commands\n"));
 	ExecCmd::useVfork(true);
-    } else {
-	LOGDEB0(("rclinit: multi-threaded execution: do not use vfork\n"));
-	ExecCmd::useVfork(false);
     }
 #endif