< prev index next >

src/hotspot/os/solaris/os_perf_solaris.cpp

Print this page
rev 50955 : [mq]: readdir

*** 602,620 **** return OS_OK; } int SystemProcessInterface::SystemProcesses::ProcessIterator::next_process() { - struct dirent* entry; - if (!is_valid()) { return OS_ERR; } do { ! if ((entry = os::readdir(_dir, _entry)) == NULL) { ! // error _valid = false; return OS_ERR; } } while(!is_valid_entry(_entry)); --- 602,619 ---- return OS_OK; } int SystemProcessInterface::SystemProcesses::ProcessIterator::next_process() { if (!is_valid()) { return OS_ERR; } do { ! _entry = os::readdir(_dir); ! if (_entry == NULL) { ! // Error or reached end. Could use errno to distinguish those cases. _valid = false; return OS_ERR; } } while(!is_valid_entry(_entry));
*** 627,654 **** _entry = NULL; _valid = false; } bool SystemProcessInterface::SystemProcesses::ProcessIterator::initialize() { ! _dir = opendir("/proc"); ! _entry = (struct dirent*)NEW_C_HEAP_ARRAY(char, sizeof(struct dirent) + _PC_NAME_MAX + 1, mtInternal); ! if (NULL == _entry) { ! return false; ! } _valid = true; next_process(); return true; } SystemProcessInterface::SystemProcesses::ProcessIterator::~ProcessIterator() { - if (_entry != NULL) { - FREE_C_HEAP_ARRAY(char, _entry); - } - if (_dir != NULL) { ! closedir(_dir); } } SystemProcessInterface::SystemProcesses::SystemProcesses() { _iterator = NULL; --- 626,646 ---- _entry = NULL; _valid = false; } bool SystemProcessInterface::SystemProcesses::ProcessIterator::initialize() { ! _dir = os::opendir("/proc"); ! _entry = NULL; _valid = true; next_process(); return true; } SystemProcessInterface::SystemProcesses::ProcessIterator::~ProcessIterator() { if (_dir != NULL) { ! os::closedir(_dir); } } SystemProcessInterface::SystemProcesses::SystemProcesses() { _iterator = NULL;
< prev index next >