src/os/solaris/vm/attachListener_solaris.cpp

Print this page
rev 4897 : 7162400: Intermittent java.io.IOException: Bad file number during HotSpotVirtualMachine.executeCommand
Reviewed-by: duke

*** 574,583 **** --- 574,605 ---- thread->check_and_wait_while_suspended(); return op; } + + // Performs initialization at vm startup + // For Solaris we remove any stale .java_pid file which could cause + // an attaching process to think we are ready to recieve a door_call + // before we are properly initialized + + void AttachListener::vm_start() { + char fn[PATH_MAX+1]; + struct stat64 st; + int ret; + + snprintf(fn, sizeof(fn), "%s/.java_pid%d", + os::get_temp_directory(), os::current_process_id()); + RESTARTABLE(::stat64(fn, &st), ret); + if (ret == 0) { + ret = ::unlink(fn); + if(ret == -1) { + debug_only(warning("failed to remove stale attach pid file at %s", fn)); + } + } + } + int AttachListener::pd_init() { JavaThread* thread = JavaThread::current(); ThreadBlockInVM tbivm(thread); thread->set_suspend_equivalent();