mirror of
https://github.com/cachix/install-nix-action.git
synced 2025-05-14 19:57:15 +00:00
v6
This commit is contained in:
parent
cd5893b2c6
commit
70742d22d9
6774 changed files with 1602535 additions and 1 deletions
37
node_modules/w3c-hr-time/lib/calculate-clock-offset.js
generated
vendored
Normal file
37
node_modules/w3c-hr-time/lib/calculate-clock-offset.js
generated
vendored
Normal file
|
@ -0,0 +1,37 @@
|
|||
"use strict";
|
||||
|
||||
// This files implements the calculation of the offset between the global monotonic clock and UNIX time. This value is
|
||||
// known as |t1| in the calculation of "time origin timestamp" in the spec. This value needs to be calculated once and
|
||||
// can be used in all subsequent Performance instances.
|
||||
//
|
||||
// However, if the clock is not fast enough, the export is undefined to signify that we should use Date.now() to get the
|
||||
// time origin timestamp with millisecond accuracy, per spec.
|
||||
|
||||
const { getGlobalMonotonicClockMS } = require("./global-monotonic-clock");
|
||||
const clockIsAccurate = require("./clock-is-accurate");
|
||||
|
||||
// This function assumes the clock is accurate.
|
||||
function calculateClockOffset() {
|
||||
const start = Date.now();
|
||||
let cur = start;
|
||||
while (cur === start) {
|
||||
cur = Date.now();
|
||||
}
|
||||
|
||||
// At this point |cur| "just" became equal to the next millisecond -- the unseen digits after |cur| are approximately
|
||||
// all 0, and |cur| is the closest to the actual value of the UNIX time. Now, get the current global monotonic clock
|
||||
// value and do the remaining calculations.
|
||||
|
||||
return cur - getGlobalMonotonicClockMS();
|
||||
}
|
||||
|
||||
if (clockIsAccurate) {
|
||||
// Warm up the function.
|
||||
calculateClockOffset();
|
||||
calculateClockOffset();
|
||||
calculateClockOffset();
|
||||
|
||||
module.exports = calculateClockOffset;
|
||||
} else {
|
||||
module.exports = undefined;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue