< prev index next >

src/hotspot/os/linux/os_perf_linux.cpp

Print this page
rev 50955 : [mq]: readdir

*** 893,917 **** return OS_OK; } int SystemProcessInterface::SystemProcesses::ProcessIterator::next_process() { - struct dirent* entry; - if (!is_valid()) { return OS_ERR; } do { ! entry = os::readdir(_dir, _entry); ! if (entry == NULL) { ! // error ! _valid = false; ! return OS_ERR; ! } if (_entry == NULL) { ! // reached end _valid = false; return OS_ERR; } } while(!is_valid_entry(_entry)); --- 893,910 ---- 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));
*** 924,950 **** _entry = NULL; _valid = false; } bool SystemProcessInterface::SystemProcesses::ProcessIterator::initialize() { ! _dir = opendir("/proc"); ! _entry = (struct dirent*)NEW_C_HEAP_ARRAY(char, sizeof(struct dirent) + 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; --- 917,937 ---- _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 >