ntdll/tests: Avoid testing the server pipe signaled state from the main thread.
commit1a02862622db0e9f203ef117c96c5265283e9d6e
authorZebediah Figura <zfigura@codeweavers.com>
Wed, 21 Dec 2022 21:38:36 +0000 (21 15:38 -0600)
committerAlexandre Julliard <julliard@winehq.org>
Thu, 22 Dec 2022 14:16:25 +0000 (22 15:16 +0100)
tree249730b2605941ebe0c97d2956b6a05e584cd02f
parenteb1f9896cc023786e5d1a1d0e7e9ea434a9d7cae
ntdll/tests: Avoid testing the server pipe signaled state from the main thread.

Although the test has never been observed to fail on Windows, I think the
failure is genuinely a race in the test.

File handles (like events) are signaled in order to mark that an I/O operation
has completed. In this case the I/O operation includes manipulating data on both
ends of the pipe, and as part of that may signal the other end. Internally,
however, the file handle must logically happen *after* all of this processing
has taken place, not least because (given the Windows I/O architecture) it is
the job of the I/O manager, not the IRP handler.

Since the purpose of the test is probably just to check that the file handle
will be signaled after a synchronous I/O operation has completed, we may as well
check it from the client thread, after we know for sure that it has.

Wine-Bug: https://bugs.winehq.org//show_bug.cgi?id=54078
dlls/ntdll/tests/pipe.c