left anonymous function wrapper at setTimeout in
a3f0cf4d807af3697ece2e05b51e8c9db44c6cd1  setTimeout seems unnecessary
now because of async I/O, but leaving it there just to make the code a
bit less fragile.