Some oddity with kernel32/pipe tests on NT4 and W2K

Paul Vriens at
Fri Nov 14 06:46:02 CST 2008


I'm looking into the timeout issue on NT4. The timeout seems to be coming from:

  796     size = 32678;
  799     ok(CreatePipe(&piperead, &pipewrite, &pipe_attr, size) != 0, 
"CreatePipe failed\n");
  800     ok(WriteFile(pipewrite, buffer, size, &written, NULL), "Write to 
anonymous pipe failed\n");

When I change it to write a smaller number of bytes:

  800     ok(WriteFile(pipewrite, buffer, (size - 24), &written, NULL), "Write 
to anonymous pipe failed\n");

we don't have a timeout.

Changing the 'size - 24' to a bigger number like 'size - 23' gives a timeout again.

Also changing size to 16384 still needs that 'size - 24' in the WriteFile(). In 
fact every size I use I need a 'size - 24';

I can also make this timeout go away by specifying at least 'size + 24' in the 
CreatePipe() call.

MSDN states that the passed size for CreatePipe us used as an suggestion. I 
guess NT4 and W2K don't guess/calculate that well?

Any ideas?



More information about the wine-devel mailing list