aboutsummaryrefslogtreecommitdiff
path: root/src/cli.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/cli.zig')
-rw-r--r--src/cli.zig21
1 files changed, 16 insertions, 5 deletions
diff --git a/src/cli.zig b/src/cli.zig
index 7668fddab..002eee57a 100644
--- a/src/cli.zig
+++ b/src/cli.zig
@@ -21,6 +21,8 @@ const clap = @import("clap");
const bundler = @import("bundler.zig");
+const fs = @import("fs.zig");
+
pub fn constStrToU8(s: string) []u8 {
return @intToPtr([*]u8, @ptrToInt(s.ptr))[0..s.len];
}
@@ -319,17 +321,19 @@ pub const Cli = struct {
var did_write = false;
var writer = stdout.writer();
-
+ var open_file_limit: usize = 32;
if (args.write) |write| {
if (write) {
- var open_file_limit: usize = 32;
-
if (std.os.getrlimit(.NOFILE)) |limit| {
open_file_limit = limit.cur;
} else |err| {}
- const do_we_need_to_close = open_file_limit > result.output_files.len * 2;
+
did_write = true;
var root_dir = try std.fs.openDirAbsolute(result.outbase, std.fs.Dir.OpenDirOptions{});
+ // On posix, file handles automatically close on process exit by the OS
+ // Closing files shows up in profiling.
+ // So don't do that unless we actually need to.
+ const do_we_need_to_close = !FeatureFlags.store_file_descriptors or (@intCast(usize, root_dir.fd) + open_file_limit) < result.output_files.len;
defer {
if (do_we_need_to_close) {
@@ -390,6 +394,11 @@ pub const Cli = struct {
if (isDebug) {
Output.println("Expr count: {d}", .{js_ast.Expr.icount});
Output.println("Stmt count: {d}", .{js_ast.Stmt.icount});
+
+ Output.println("File Descriptors: {d} / {d}", .{
+ fs.FileSystem.max_fd,
+ open_file_limit,
+ });
}
if (!did_write) {
@@ -415,8 +424,10 @@ pub const Cli = struct {
const duration = std.time.nanoTimestamp() - start_time;
if (did_write and duration < @as(i128, @as(i128, std.time.ns_per_s) * @as(i128, 2))) {
- var elapsed = @divFloor(duration, @as(i128, std.time.ns_per_ms));
+ var elapsed = @divExact(duration, @as(i128, std.time.ns_per_ms));
try writer.print("\nCompleted in {d}ms", .{elapsed});
}
+
+ std.os.exit(0);
}
};