Merge
authorjprovino
Wed, 02 May 2012 15:47:06 -0400
changeset 12506 0ee21d1f799a
parent 12504 7729f0766700 (current diff)
parent 12505 80f2bda36ea8 (diff)
child 12512 5898965fd407
Merge
--- a/hotspot/src/os/solaris/vm/attachListener_solaris.cpp	Wed Apr 25 15:06:51 2012 -0700
+++ b/hotspot/src/os/solaris/vm/attachListener_solaris.cpp	Wed May 02 15:47:06 2012 -0400
@@ -336,7 +336,9 @@
     // Return 0 (success) + file descriptor, or non-0 (error)
     if (res == 0) {
       door_desc_t desc;
-      desc.d_attributes = DOOR_DESCRIPTOR;
+      // DOOR_RELEASE flag makes sure fd is closed after passing it to
+      // the client.  See door_return(3DOOR) man page.
+      desc.d_attributes = DOOR_DESCRIPTOR | DOOR_RELEASE;
       desc.d_data.d_desc.d_descriptor = return_fd;
       door_return((char*)&res, sizeof(res), &desc, 1);
     } else {