@@ -5,6 +5,8 @@ if (!common.hasCrypto)
55 common . skip ( 'missing crypto' ) ;
66const assert = require ( 'assert' ) ;
77const http2 = require ( 'http2' ) ;
8+ const hrtime = process . hrtime . bigint ;
9+ const NS_PER_MS = 1_000_000n ;
810
911let requests = 0 ;
1012const mustNotCall = ( ) => {
@@ -14,7 +16,7 @@ const mustNotCall = () => {
1416const server = http2 . createServer ( ) ;
1517// Disable server timeout until first request. We will set the timeout based on
1618// how long the first request takes.
17- server . timeout = 0 ;
19+ server . timeout = 0n ;
1820
1921server . on ( 'request' , ( req , res ) => res . end ( ) ) ;
2022server . on ( 'timeout' , mustNotCall ) ;
@@ -24,7 +26,7 @@ server.listen(0, common.mustCall(() => {
2426
2527 const url = `http://localhost:${ port } ` ;
2628 const client = http2 . connect ( url ) ;
27- let startTime = process . hrtime ( ) ;
29+ let startTime = hrtime ( ) ;
2830 makeReq ( ) ;
2931
3032 function makeReq ( ) {
@@ -40,17 +42,17 @@ server.listen(0, common.mustCall(() => {
4042 requests += 1 ;
4143
4244 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 ) {
4648 // Set the timeout now. First connection will take significantly longer
4749 // than subsequent connections, so using the duration of the first
4850 // connection as the timeout should be robust. Double it anyway for good
4951 // measure.
50- server . timeout = milliseconds * 2 ;
51- startTime = process . hrtime ( ) ;
52+ server . timeout = milliseconds * 2n ;
53+ startTime = hrtime ( ) ;
5254 makeReq ( ) ;
53- } else if ( milliseconds < server . timeout * 2 ) {
55+ } else if ( milliseconds < server . timeout * 2n ) {
5456 makeReq ( ) ;
5557 } else {
5658 server . removeListener ( 'timeout' , mustNotCall ) ;
0 commit comments