I don't understand why swapping the isopen test with the uv_is_writable test would help.  It looks like uv_shutdown is doing the same thing on both platforms with regard to writability, if it isn't writable it aborts.  We're always going to be able to check both things since we check the handle type first, and if either test fails, going into uv_shutdown is going to cause trouble.  Clarify for me?