aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-11-07 14:44:55 -0800
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-11-07 14:44:55 -0800
commit3cb7dbe9218f274ba436d440ef661449073168d5 (patch)
tree8e9fa33c1cc1ac3fd0f746d0b2b00c7a3ee53eaa /src
parentbc3c17ffc8cd56e92c4002ef923e9ae0e0e30246 (diff)
downloadbun-3cb7dbe9218f274ba436d440ef661449073168d5.tar.gz
bun-3cb7dbe9218f274ba436d440ef661449073168d5.tar.zst
bun-3cb7dbe9218f274ba436d440ef661449073168d5.zip
[resolver] Fix race condition that can cause the elapsed counter to integer overflow
Diffstat (limited to 'src')
-rw-r--r--src/resolver/resolver.zig8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/resolver/resolver.zig b/src/resolver/resolver.zig
index 5816ebd6b..294b6a833 100644
--- a/src/resolver/resolver.zig
+++ b/src/resolver/resolver.zig
@@ -592,13 +592,17 @@ pub const Resolver = struct {
pub fn resolve(r: *ThisResolver, source_dir: string, import_path: string, kind: ast.ImportKind) !Result {
r.extension_order = if (kind.isFromCSS()) std.mem.span(&options.BundleOptions.Defaults.CSSExtensionOrder) else r.opts.extension_order;
+ var timer: ?std.time.Timer = null;
if (FeatureFlags.tracing) {
- r.timer.reset();
+ timer = std.time.Timer.start() catch null;
}
defer {
if (FeatureFlags.tracing) {
- r.elapsed += r.timer.read();
+ if (timer) |time| {
+ // technically, this should be an atomic op
+ r.elapsed += time.read();
+ }
}
}
if (r.log.level == .verbose) {