I have found and tried WaitForSingleObject, using the following syntax:

ThereIsACharacterToRead :=   WaitForSingleObject(StdInputHandle,0) = 0;
While ThereIsACharacterToRead do
begin
  aByte := InputStream.ReadByte;
  ThereIsACharacterToRead :=   WaitForSingleObject(StdInputHandle,0) = 0;
end;

However, WaitForSingleObject always gives back 0, meaning there should be 
information. My logging tells me that information arrives at least 500ms 
afterwards and that ReadByte waits for it. Something is not working.
Thierry

----- Mail Original -----
De: "tcoq" <t...@free.fr>
À: "FPC-Pascal users discussions" <fpc-pascal@lists.freepascal.org>
Envoyé: Vendredi 9 Décembre 2011 17h56:13 GMT +01:00 Amsterdam / Berlin / Berne 
/ Rome / Stockholm / Vienne
Objet: Re: [fpc-pascal] How to poll for a byte in Input?

On windows, I did not find WaitForSingleObject, which is actually going to wait 
for the file.
However I found ReadFileEx in the Windows API, which is an asynchronous read on 
the file. I'll try using that.

----- Mail Original -----
De: "Michael Van Canneyt" <mich...@freepascal.org>
À: "FPC-Pascal users discussions" <fpc-pascal@lists.freepascal.org>
Envoyé: Vendredi 9 Décembre 2011 16h57:47 GMT +01:00 Amsterdam / Berlin / Berne 
/ Rome / Stockholm / Vienne
Objet: Re: [fpc-pascal] How to poll for a byte in Input?
>...
You must use fpSelect() or Poll on the handle on linux/unix.
On windows, you'll need to WaitForObject() or so on the file handle.

Michael.
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to