Replace the use of wall clock time with monotonically increasing
clock. In general, gettimeofday() is not appropriate interface when accounting for elasped time because it can go backward, in which case the policy code could errornously consider the limit as exceeded. MFC after: 1 week Reported by: Mahesh Arumugam Submitted by: Dorr H. Clark via gnn Sponsored by: Citrix / NetScaler
This commit is contained in:
parent
cec20e143c
commit
4f985ef6b9
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=236572
@ -688,11 +688,11 @@ main(int argc, char **argv)
|
||||
*/
|
||||
if (dofork) {
|
||||
if (sep->se_count++ == 0)
|
||||
(void)gettimeofday(&sep->se_time, (struct timezone *)NULL);
|
||||
(void)clock_gettime(CLOCK_MONOTONIC_FAST, &sep->se_time);
|
||||
else if (toomany > 0 && sep->se_count >= toomany) {
|
||||
struct timeval now;
|
||||
struct timespec now;
|
||||
|
||||
(void)gettimeofday(&now, (struct timezone *)NULL);
|
||||
(void)clock_gettime(CLOCK_MONOTONIC_FAST, &now);
|
||||
if (now.tv_sec - sep->se_time.tv_sec >
|
||||
CNT_INTVL) {
|
||||
sep->se_time = now;
|
||||
|
@ -109,7 +109,7 @@ struct servtab {
|
||||
u_int se_rpc_lowvers; /* RPC low version */
|
||||
u_int se_rpc_highvers; /* RPC high version */
|
||||
int se_count; /* number started since se_time */
|
||||
struct timeval se_time; /* start of se_count */
|
||||
struct timespec se_time; /* start of se_count */
|
||||
struct servtab *se_next;
|
||||
struct se_flags {
|
||||
u_int se_nomapped : 1;
|
||||
|
Loading…
Reference in New Issue
Block a user