diff options
author | Tavian Barnes <tavianator@tavianator.com> | 2024-05-23 14:28:02 -0400 |
---|---|---|
committer | Tavian Barnes <tavianator@tavianator.com> | 2024-05-23 14:34:33 -0400 |
commit | 65a7814b2dbc10ea86610092f03d0c1df95d08ad (patch) | |
tree | 3075cb84811b6be8dba357f96dcbbf955905b2e3 /src/ctx.h | |
parent | 07b0c50e94543a88f699fa60b577d8e53c978ff1 (diff) | |
download | bfs-65a7814b2dbc10ea86610092f03d0c1df95d08ad.tar.xz |
opt: Don't raise RLIMIT_NOFILE if it would prevent using posix_spawn()
If we raise RLIMIT_NOFILE, we have to lower it before calling exec() for
compatibility with select(). If posix_spawn() doesn't support that, we
fall back to fork(), which is quite a bit slower.
Therefore, if we're going to exec() on most files, it's better to keep
RLIMIT_NOFILE the same to avoid the fork() cost, even though it makes
bftw() somewhat slower.
Diffstat (limited to 'src/ctx.h')
-rw-r--r-- | src/ctx.h | 2 |
1 files changed, 2 insertions, 0 deletions
@@ -102,6 +102,8 @@ struct bfs_ctx { struct rlimit orig_nofile; /** The current RLIMIT_NOFILE limits. */ struct rlimit cur_nofile; + /** Whether the fd limit should be raised. */ + bool raise_nofile; /** The current time. */ struct timespec now; |