diff options
| author | Richard Nelson <richard@lindenlab.com> | 2011-07-26 15:38:37 -0700 | 
|---|---|---|
| committer | Richard Nelson <richard@lindenlab.com> | 2011-07-26 15:38:37 -0700 | 
| commit | 2c2a4c123eb9bfa80785e5509e73c8f7f236228f (patch) | |
| tree | 83160657e9c42e9dc78f6be455f254671429bc9c /indra/newview/llappviewerlinux.cpp | |
| parent | 74b6f5dce31b5ff69ced8e1e8cd37e4c5ded2943 (diff) | |
| parent | 95da8c81f3d5afd8d888589398028883e6647333 (diff) | |
merge
Diffstat (limited to 'indra/newview/llappviewerlinux.cpp')
| -rw-r--r-- | indra/newview/llappviewerlinux.cpp | 63 | 
1 files changed, 26 insertions, 37 deletions
diff --git a/indra/newview/llappviewerlinux.cpp b/indra/newview/llappviewerlinux.cpp index 714e0e6163..48d02dfeaa 100644 --- a/indra/newview/llappviewerlinux.cpp +++ b/indra/newview/llappviewerlinux.cpp @@ -361,46 +361,35 @@ void LLAppViewerLinux::handleCrashReporting(bool reportFreeze)  	}  	else  	{ -		const S32 cb = gCrashSettings.getS32(CRASH_BEHAVIOR_SETTING); - -		// Always generate the report, have the logger do the asking, and -		// don't wait for the logger before exiting (-> total cleanup). -		if (CRASH_BEHAVIOR_NEVER_SEND != cb) -		{	 -			// launch the actual crash logger -			const char* ask_dialog = "-dialog"; -			if (CRASH_BEHAVIOR_ASK != cb) -				ask_dialog = ""; // omit '-dialog' option -			const char * cmdargv[] = -				{cmd.c_str(), -				 ask_dialog, -				 "-user", -				 (char*)LLGridManager::getInstance()->getGridLabel().c_str(), -				 "-name", -				 LLAppViewer::instance()->getSecondLifeTitle().c_str(), -				 NULL}; -			fflush(NULL); -			pid_t pid = fork(); -			if (pid == 0) -			{ // child -				execv(cmd.c_str(), (char* const*) cmdargv);		/* Flawfinder: ignore */ -				llwarns << "execv failure when trying to start " << cmd << llendl; -				_exit(1); // avoid atexit() +		// launch the actual crash logger +		const char * cmdargv[] = +			{cmd.c_str(), +			 "-user", +			 (char*)LLGridManager::getInstance()->getGridLabel().c_str(), +			 "-name", +			 LLAppViewer::instance()->getSecondLifeTitle().c_str(), +			 NULL}; +		fflush(NULL); +		pid_t pid = fork(); +		if (pid == 0) +		{ // child +			execv(cmd.c_str(), (char* const*) cmdargv);		/* Flawfinder: ignore */ +			llwarns << "execv failure when trying to start " << cmd << llendl; +			_exit(1); // avoid atexit() +		}  +		else +		{ +			if (pid > 0) +			{ +				// DO NOT wait for child proc to die; we want +				// the logger to outlive us while we quit to +				// free up the screen/keyboard/etc. +				////int childExitStatus; +				////waitpid(pid, &childExitStatus, 0);  			}   			else  			{ -				if (pid > 0) -				{ -					// DO NOT wait for child proc to die; we want -					// the logger to outlive us while we quit to -					// free up the screen/keyboard/etc. -					////int childExitStatus; -					////waitpid(pid, &childExitStatus, 0); -				}  -				else -				{ -					llwarns << "fork failure." << llendl; -				} +				llwarns << "fork failure." << llendl;  			}  		}  		// Sometimes signals don't seem to quit the viewer.  Also, we may  | 
