revert previous fix for Snow Leopard crashes and apply new one

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32067 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Jean-Marc Lasgouttes 2009-11-17 17:04:47 +00:00
parent 1545219dcb
commit 3f22ae8f1d
2 changed files with 13 additions and 9 deletions

View 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

View 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();