summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorskolb <none@none>2009-12-14 09:07:07 -0800
committerskolb <none@none>2009-12-14 09:07:07 -0800
commit962a42a331992344ecef4b5b8acd209b953c4512 (patch)
tree4564bed8ee9ce09f5916e04e8b3f2adce76c511a
parenta9e409c7071ba74f01158aa7b876a1ad60161fc4 (diff)
parent5e4d7ec715f496406644d52701cbabc2935fc1c3 (diff)
Merge
-rw-r--r--indra/llplugin/llpluginprocessparent.cpp9
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;