void *VRBRAINScheduler::_io_thread(void *arg) { VRBRAINScheduler *sched = (VRBRAINScheduler *)arg; while (!sched->_hal_initialized) { poll(NULL, 0, 1); } while (!_vrbrain_thread_should_exit) { poll(NULL, 0, 1); // run registered IO processes perf_begin(sched->_perf_io_timers); sched->_run_io(); perf_end(sched->_perf_io_timers); } return NULL; }
void *VRBRAINScheduler::_io_thread(void *arg) { VRBRAINScheduler *sched = (VRBRAINScheduler *)arg; pthread_setname_np(pthread_self(), "apm_io"); while (!sched->_hal_initialized) { poll(nullptr, 0, 1); } while (!_vrbrain_thread_should_exit) { sched->delay_microseconds_semaphore(1000); // run registered IO processes perf_begin(sched->_perf_io_timers); sched->_run_io(); perf_end(sched->_perf_io_timers); } return nullptr; }