Fix leaking FD

See #1289 
Heh, good point. I don't understand why, now that I look at that function, one must still call Close() after both CloseRead and CloseWrite have been called. That seems like an awful lot of closing.