One more Win32 programming question for OSProcess

Stephen Pair spair at advantive.com
Tue Feb 26 13:42:22 UTC 2002


David,

The general mechanisms for handling file i/o asyncronously in Windows
are called "I/O completion ports"...but, these APIs are only available
on operating systems using the NT kernel (which all current Windows OSes
use).  There's a white paper on the MSDN site called something like
"writing scalable server applications in Windows NT"...it has a good
discussion on doing asynchronous I/O using I/O completion ports.  Search
for "completion ports" on msdn.microsoft.com.

- Stephen

> -----Original Message-----
> From: squeak-dev-admin at lists.squeakfoundation.org 
> [mailto:squeak-dev-admin at lists.squeakfoundation.org] On 
> Behalf Of David T. Lewis
> Sent: Tuesday, February 26, 2002 8:09 AM
> To: squeak-dev at lists.squeakfoundation.org
> Subject: One more Win32 programming question for OSProcess
> 
> 
> Sorry to pollute the Squeak list with this, but I need some 
> help on Win32 anonymous pipes:
> 
> In CommandShell, when running with OSProcess, I do a lot
> of IO to operating system pipes. In order to prevent hanging 
> the Squeak VM on a blocking read or write on an operating 
> system pipe, I set the pipe to nonblocking mode. On Unix, 
> this is done with a call to fcntl().
> 
> Is there an equivalent mechanism on Win32, in which I could 
> set the characteristics of a HANDLE on a Win32 anonymous pipe 
> to cause it to be nonblocking?
> 
> I suspect that the answer is no, but I thought I'd better ask 
> before implementing something dumb like a thread to wait on a 
> read or write to complete. Ugh, I'm sure that's going to end 
> up being the answer.
> 
> Thanks
> 
> 
> 




More information about the Squeak-dev mailing list