]> git.lyx.org Git - features.git/commitdiff
revert previous fix for Snow Leopard crashes and apply new one
authorJean-Marc Lasgouttes <lasgouttes@lyx.org>
Tue, 17 Nov 2009 17:04:47 +0000 (17:04 +0000)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Tue, 17 Nov 2009 17:04:47 +0000 (17:04 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32067 a592a061-630c-0410-9148-cb99ea01b6c8

src/Buffer.cpp
src/support/ForkedCalls.cpp

index cf43bcaf3024941529215b7d620dc40501858ddf..55090abc47ceebb9b7dd4704a8b097b2873861de 100644 (file)
@@ -2964,6 +2964,15 @@ private:
 
 int AutoSaveBuffer::generateChild()
 {
+#if defined(__APPLE__)
+       /* FIXME fork() is not usable for autosave on Mac OS X 10.6 (snow leopard) 
+        *   We should use something else like threads.
+        *
+        * Since I do not know how to determine at run time what is the OS X
+        * version, I just disable forking altogether for now (JMarc)
+        */
+       pid_t const pid = -1;
+#else
        // tmp_ret will be located (usually) in /tmp
        // will that be a problem?
        // Note that this calls ForkedCalls::fork(), so it's
@@ -2973,6 +2982,7 @@ int AutoSaveBuffer::generateChild()
        // you should set pid to -1, and comment out the fork.
        if (pid != 0 && pid != -1)
                return pid;
+#endif
 
        // pid = -1 signifies that lyx was unable
        // to fork. But we will do the save
index 592053b6cf23a6fe04d03ed14f5fa976f5380c7b..e5e2aa8c2b0be5cc4bb06501e0ac4f692778bfc1 100644 (file)
@@ -150,7 +150,7 @@ int ForkedProcess::run(Starttype type)
 
 bool ForkedProcess::running() const
 {
-       if (!pid())
+       if (pid() <= 0)
                return false;
 
 #if !defined (_WIN32)
@@ -170,7 +170,7 @@ bool ForkedProcess::running() const
 void ForkedProcess::kill(int tol)
 {
        lyxerr << "ForkedProcess::kill(" << tol << ')' << endl;
-       if (pid() == 0) {
+       if (pid() <= 0) {
                lyxerr << "Can't kill non-existent process!" << endl;
                return;
        }
@@ -192,13 +192,7 @@ void ForkedProcess::kill(int tol)
 
 
 pid_t ForkedProcess::fork() {
-/* FIXME fork() is not usable on Mac OS X 10.6 (snow leopard) 
- *   Use something else like threads.
- *
- * Since I do not know how to determine at run time what is the OS X
- * version, I just disable forking altogether for now (JMarc)
- */
-#if !defined (HAVE_FORK) || defined(__APPLE__)
+#if !defined (HAVE_FORK)
        return -1;
 #else
        pid_t pid = ::fork();