1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-07-01 11:32:48 -05:00

Patch from Robert de Bath to substantially simplify timing.c.

The previous platform-dependent ifdefs, switching between a system
which tried to cope with spurious callbacks (which I'd observed on
Windows) and one which tried to cope with system clock jumps (which
can happen on Unix, if you use gettimeofday) have been completely
removed, and replaced with a much simpler approach which just copes
with system clock jumps by triggering any timers immediately.

None of the resulting effects should be catastrophic (the worst thing
might be the waste of CPU in a spurious rekey, but as long as the
system clock isn't jumping around _all_ the time that's hardly
critical) and in any case the Unix port has had a long-standing oddity
involving occasional lockups if pterm or PuTTY runs for too long,
which hopefully this should replace with a much less bad failure mode.
And the code is much simpler, which is not to be sneezed at.

[originally from svn r9528]
This commit is contained in:
Simon Tatham
2012-05-13 15:59:26 +00:00
parent d095b3c35c
commit aba05b7180
6 changed files with 30 additions and 114 deletions

View File

@ -236,15 +236,6 @@ GLOBAL void *logctx;
#define FILTER_DYNLIB_FILES ("Dynamic Library Files (*.dll)\0*.dll\0" \
"All Files (*.*)\0*\0\0\0")
/*
* On some versions of Windows, it has been known for WM_TIMER to
* occasionally get its callback time simply wrong, and call us
* back several minutes early. Defining these symbols enables
* compensation code in timing.c.
*/
#define TIMING_SYNC
#define TIMING_SYNC_TICKCOUNT
/*
* winnet.c dynamically loads WinSock 2 or WinSock 1 depending on
* what it can get, which means any WinSock routines used outside