Two related changes to timing code:
authorben <ben@cda61777-01e9-0310-a592-d414129be87e>
Tue, 18 Sep 2012 21:42:48 +0000 (21:42 +0000)
committerben <ben@cda61777-01e9-0310-a592-d414129be87e>
Tue, 18 Sep 2012 21:42:48 +0000 (21:42 +0000)
commitd719927eb175a73b13a7015498e9757010344bf5
treeb344643ad357bda82ec7d8220723a7c9818886db
parentf42faba9ff09df066a6bfce4e179d7566048395a
Two related changes to timing code:

First, make absolute times unsigned.  This means that it's safe to
depend on their overflow behaviour (which is undefined for signed
integers).  This requires a little extra care in handling comparisons,
but I think I've correctly adjusted them all.

Second, functions registered with schedule_timer() are guaranteed to be
called with precisely the time that was returned by schedule_timer().
Thus, it's only necessary to check these values for equality rather than
doing risky range checks, so do that.

The timing code still does lots that's undefined, unnecessary, or just
wrong, but this is a good start.

git-svn-id: svn://svn.tartarus.org/sgt/putty@9667 cda61777-01e9-0310-a592-d414129be87e
16 files changed:
notiming.c
pinger.c
putty.h
ssh.c
sshrand.c
terminal.c
timing.c
unix/gtkwin.c
unix/uxcons.c
unix/uxplink.c
unix/uxsftp.c
windows/wincons.c
windows/window.c
windows/winplink.c
windows/winser.c
windows/winsftp.c