aboutsummaryrefslogtreecommitdiff
path: root/src/cache.zig
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-06-12 00:49:46 -0700
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-06-12 00:49:46 -0700
commitf43234bc300b7e9d9d572dc1b7d8e156ad01576a (patch)
tree8b49104e19295799d25bcb4a20f87029bc6fa306 /src/cache.zig
parent223410eab3c18be989e520a7aeac470bf941dd6b (diff)
downloadbun-f43234bc300b7e9d9d572dc1b7d8e156ad01576a.tar.gz
bun-f43234bc300b7e9d9d572dc1b7d8e156ad01576a.tar.zst
bun-f43234bc300b7e9d9d572dc1b7d8e156ad01576a.zip
little kqueue fs watcher
Former-commit-id: f93472101aa7338b3cdfc9db5c936d010f4cda82
Diffstat (limited to 'src/cache.zig')
-rw-r--r--src/cache.zig15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/cache.zig b/src/cache.zig
index c28312fbf..07b4b152b 100644
--- a/src/cache.zig
+++ b/src/cache.zig
@@ -69,6 +69,7 @@ pub fn NewCache(comptime cache_files: bool) type {
path: string,
dirname_fd: StoredFileDescriptorType,
comptime use_shared_buffer: bool,
+ _file_handle: ?StoredFileDescriptorType,
) !Entry {
var rfs = _fs.fs;
@@ -82,16 +83,18 @@ pub fn NewCache(comptime cache_files: bool) type {
}
}
- var file_handle: std.fs.File = undefined;
+ var file_handle: std.fs.File = if (_file_handle) |__file| std.fs.File{ .handle = __file } else undefined;
- if (FeatureFlags.store_file_descriptors and dirname_fd > 0) {
- file_handle = try std.fs.Dir.openFile(std.fs.Dir{ .fd = dirname_fd }, std.fs.path.basename(path), .{ .read = true });
- } else {
- file_handle = try std.fs.openFileAbsolute(path, .{ .read = true });
+ if (_file_handle == null) {
+ if (FeatureFlags.store_file_descriptors and dirname_fd > 0) {
+ file_handle = try std.fs.Dir.openFile(std.fs.Dir{ .fd = dirname_fd }, std.fs.path.basename(path), .{ .read = true });
+ } else {
+ file_handle = try std.fs.openFileAbsolute(path, .{ .read = true });
+ }
}
defer {
- if (rfs.needToCloseFiles()) {
+ if (rfs.needToCloseFiles() and _file_handle == null) {
file_handle.close();
}
}