TIP: Click on subject to list as thread! ANSI
echo: os2prog
to: Mario Semo
from: Peter Fitzsimmons
date: 1995-05-31 02:04:58
subject: `Wait for something` TO

MS> We are a little bit confused about what you said (or 
 MS> what we understand you said :-) ) last year in 
 MS> Colorado and what the Toolkit 3.0 online help says.

It is a confusing topic.

For reference,  here is juicy bit of the the official documentation:

 Topic:  Read Timeout State

 When the physical device driver processes a READ request packet, it can
 be with Normal, No-Wait, or Wait-For-Something Timeout processing. With
 Normal Timeout processing, if no data is received in the specified
 period of time, the request is completed. With No-Wait Timeout
 processing, the request obtains whatever data is available in the
 physical device driver receive queue (at the time the request is
 processed by the device driver) and returns. With Wait-For-Something
 Timeout processing, the request acts like No-Wait Timeout processing.
 However, if no data is available when the device driver processes the
 request, the physical device driver waits until some data is available
 or until the request times out due to Normal Timeout processing.

 MS> "Normal Read Timeout" (NRTO) and "Wait for
something" (WFS).

In the briefest terms:

NRTO - the "timeout counter" is reset after each received character.
     - A DosRead() will not return until your whole buffer is filled,
       or the timeout occurs.

WFS  - if there is already some data waiting in the device driver, it is
       returned right away,  even if it is less than the size of your
       buffer (this means you can always pass a large buffer (>1k, for
       example;  which is VERY efficient,  since there is a lot of
       overhead for each DosRead).
     - The entire timeout value will only transpire if no data ever
       arrives.

I can't resond to your graph --- some of it has to do with when the byte
arrives in the DD,  and when your application calls DosRead. Regardless,I
have not tried to document the timings with such precision;  instead I
watched CPS rates and CPU usage for more-or-less streaming data (in which
case a well written multithread WFS program always wins).


--- Maximus/2 2.02p1
* Origin: Sol 3/Toronto (905)858-8488 (1:259/414)
SEEN-BY: 105/42 620/243 711/401 409 410 413 430 807 808 809 934 955 712/407
SEEN-BY: 712/515 628 704 713/888 800/1 7877/2809
@PATH: 259/414 400 99 250/702 3615/50 396/1 270/101 105/103 42 712/515
@PATH: 711/808 809 934

SOURCE: echomail via fidonet.ozzmosis.com

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.