- FILE_SYNCHRONOUS_IO_NONALERT );This looks incorrect. You probably want to compare to -1, not zero. Zero means reads must not block at all, and -1 means read must wait forever (not sure what zero timeout would work as expected with your patch, but it didn't anyway and I think it maybe is broken in another place)
+ read_timeout ? 0 : FILE_SYNCHRONOUS_IO_NONALERT );
Hi, Changelog: server: fix async read on mailslot