ken@gvax.cs.cornell.edu (Ken Birman) (09/25/90)
In V2.1 you may see messages of the following sort when running the qa part of the twenty questions demo, but only in BYPASS mode: ISIS client pid 2826: time warp (53.000 secs)! The number of seconds will always be the amount of time that qa was displaying its prompt before you entered the most recent command. This message reveals a "bug" in qa, namely that it is calling getchar() without checking that input is available. A fix would be to call isis_select(32, &imask, 0, 0, 0) with imask = (1<<fileno(stdin)) right before the call to getchar() in the main loop. The reason ISIS cares is that in BYPASS mode applications may get asked to send ack messages and terminate messages (a form of internal message associated with the bypass cbcast implementation) after a timeout elapses. QA is not giving ISIS a chance to do this, and ISIS complains next time it gets control. Ken