diff options
Diffstat (limited to 'indra/llplugin')
| -rw-r--r-- | indra/llplugin/llpluginprocessparent.cpp | 9 | 
1 files changed, 6 insertions, 3 deletions
| diff --git a/indra/llplugin/llpluginprocessparent.cpp b/indra/llplugin/llpluginprocessparent.cpp index f60838b1e7..dab6d645dd 100644 --- a/indra/llplugin/llpluginprocessparent.cpp +++ b/indra/llplugin/llpluginprocessparent.cpp @@ -79,8 +79,10 @@ LLPluginProcessParent::~LLPluginProcessParent()  		// and remove it from our map  		mSharedMemoryRegions.erase(iter);  	} - -	mProcess.kill(); +	 +	// orphaning the process means it won't be killed when the LLProcessLauncher is destructed. +	// This is what we want -- it should exit cleanly once it notices the sockets have been closed. +	mProcess.orphan();  	killSockets();  } @@ -414,7 +416,8 @@ void LLPluginProcessParent::idle(void)  			break;  			case STATE_CLEANUP: -				mProcess.kill(); +				// Don't do a kill here anymore -- closing the sockets is the new 'kill'. +				mProcess.orphan();  				killSockets();  				setState(STATE_DONE);  			break; | 
