add new poller method 'epoll'
refactor: move nanosleep to util