@@ -5,6 +5,8 @@ if (!common.hasCrypto)
5
5
common . skip ( 'missing crypto' ) ;
6
6
const assert = require ( 'assert' ) ;
7
7
const http2 = require ( 'http2' ) ;
8
+ const hrtime = process . hrtime . bigint ;
9
+ const NS_PER_MS = 1_000_000n ;
8
10
9
11
let requests = 0 ;
10
12
const mustNotCall = ( ) => {
@@ -14,7 +16,7 @@ const mustNotCall = () => {
14
16
const server = http2 . createServer ( ) ;
15
17
// Disable server timeout until first request. We will set the timeout based on
16
18
// how long the first request takes.
17
- server . timeout = 0 ;
19
+ server . timeout = 0n ;
18
20
19
21
server . on ( 'request' , ( req , res ) => res . end ( ) ) ;
20
22
server . on ( 'timeout' , mustNotCall ) ;
@@ -24,7 +26,7 @@ server.listen(0, common.mustCall(() => {
24
26
25
27
const url = `http://localhost:${ port } ` ;
26
28
const client = http2 . connect ( url ) ;
27
- let startTime = process . hrtime ( ) ;
29
+ let startTime = hrtime ( ) ;
28
30
makeReq ( ) ;
29
31
30
32
function makeReq ( ) {
@@ -40,17 +42,17 @@ server.listen(0, common.mustCall(() => {
40
42
requests += 1 ;
41
43
42
44
request . on ( 'end' , ( ) => {
43
- const diff = process . hrtime ( startTime ) ;
44
- const milliseconds = ( diff [ 0 ] * 1e3 + diff [ 1 ] / 1e6 ) ;
45
- if ( server . timeout === 0 ) {
45
+ const diff = hrtime ( ) - startTime ;
46
+ const milliseconds = diff / NS_PER_MS ;
47
+ if ( server . timeout === 0n ) {
46
48
// Set the timeout now. First connection will take significantly longer
47
49
// than subsequent connections, so using the duration of the first
48
50
// connection as the timeout should be robust. Double it anyway for good
49
51
// measure.
50
- server . timeout = milliseconds * 2 ;
51
- startTime = process . hrtime ( ) ;
52
+ server . timeout = milliseconds * 2n ;
53
+ startTime = hrtime ( ) ;
52
54
makeReq ( ) ;
53
- } else if ( milliseconds < server . timeout * 2 ) {
55
+ } else if ( milliseconds < server . timeout * 2n ) {
54
56
makeReq ( ) ;
55
57
} else {
56
58
server . removeListener ( 'timeout' , mustNotCall ) ;
0 commit comments