summaryrefslogtreecommitdiff
path: root/indra/llplugin
diff options
context:
space:
mode:
authorrichard <none@none>2009-12-14 15:11:55 -0800
committerrichard <none@none>2009-12-14 15:11:55 -0800
commita63531145d210a872072f20ee1f04d9504c6617c (patch)
tree73ac302bbf05c50246eb3f72b7cea52356f6ccbc /indra/llplugin
parentdaeef47ce111eb8f131dc8b7a2f6aca6226f7867 (diff)
parent0d9bae83edc9b41ebfeffd947f9b149e3312fded (diff)
merge
Diffstat (limited to 'indra/llplugin')
-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;