comparison src/os/solaris/vm/attachListener_solaris.cpp @ 6024:973046802b6f

7162955: Attach api on Solaris, too many open files Summary: Release server-side socket after client receives it. Reviewed-by: sla, dsamersoff, dcubed, acorn Contributed-by: dean.long@oracle.com
author dlong
date Thu, 26 Apr 2012 16:24:15 -0400
parents f95d63e2154a
children b9a9ed0f8eeb
comparison
equal deleted inserted replaced
6016:3c91f2c9fd21 6024:973046802b6f
334 } 334 }
335 335
336 // Return 0 (success) + file descriptor, or non-0 (error) 336 // Return 0 (success) + file descriptor, or non-0 (error)
337 if (res == 0) { 337 if (res == 0) {
338 door_desc_t desc; 338 door_desc_t desc;
339 desc.d_attributes = DOOR_DESCRIPTOR; 339 // DOOR_RELEASE flag makes sure fd is closed after passing it to
340 // the client. See door_return(3DOOR) man page.
341 desc.d_attributes = DOOR_DESCRIPTOR | DOOR_RELEASE;
340 desc.d_data.d_desc.d_descriptor = return_fd; 342 desc.d_data.d_desc.d_descriptor = return_fd;
341 door_return((char*)&res, sizeof(res), &desc, 1); 343 door_return((char*)&res, sizeof(res), &desc, 1);
342 } else { 344 } else {
343 door_return((char*)&res, sizeof(res), NULL, 0); 345 door_return((char*)&res, sizeof(res), NULL, 0);
344 } 346 }