add select I/O event feature