do synchronous I/O