Skip to content

Commit d581833

Browse files
committed
[Runtime][Backtracing] Conditionalise initialisation of the spawnattr.
We don't need to initialise the posix_spawnattr unless we're enabling the backtracer, so don't. rdar://109354306
1 parent 2278172 commit d581833

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed

stdlib/public/runtime/Backtrace.cpp

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -271,17 +271,6 @@ BacktraceInitializer::BacktraceInitializer() {
271271
if (backtracing)
272272
_swift_parseBacktracingSettings(backtracing);
273273

274-
#if TARGET_OS_OSX || TARGET_OS_MACCATALYST
275-
// Make sure that all fds are closed except for stdin/stdout/stderr.
276-
posix_spawnattr_init(&backtraceSpawnAttrs);
277-
posix_spawnattr_setflags(&backtraceSpawnAttrs, POSIX_SPAWN_CLOEXEC_DEFAULT);
278-
279-
posix_spawn_file_actions_init(&backtraceFileActions);
280-
posix_spawn_file_actions_addinherit_np(&backtraceFileActions, STDIN_FILENO);
281-
posix_spawn_file_actions_addinherit_np(&backtraceFileActions, STDOUT_FILENO);
282-
posix_spawn_file_actions_addinherit_np(&backtraceFileActions, STDERR_FILENO);
283-
#endif
284-
285274
#if !SWIFT_BACKTRACE_ON_CRASH_SUPPORTED
286275
if (_swift_backtraceSettings.enabled != OnOffTty::Off) {
287276
swift::warning(0,
@@ -439,6 +428,17 @@ BacktraceInitializer::BacktraceInitializer() {
439428
}
440429

441430
if (_swift_backtraceSettings.enabled == OnOffTty::On) {
431+
#if TARGET_OS_OSX || TARGET_OS_MACCATALYST
432+
// Make sure that all fds are closed except for stdin/stdout/stderr.
433+
posix_spawnattr_init(&backtraceSpawnAttrs);
434+
posix_spawnattr_setflags(&backtraceSpawnAttrs, POSIX_SPAWN_CLOEXEC_DEFAULT);
435+
436+
posix_spawn_file_actions_init(&backtraceFileActions);
437+
posix_spawn_file_actions_addinherit_np(&backtraceFileActions, STDIN_FILENO);
438+
posix_spawn_file_actions_addinherit_np(&backtraceFileActions, STDOUT_FILENO);
439+
posix_spawn_file_actions_addinherit_np(&backtraceFileActions, STDERR_FILENO);
440+
#endif
441+
442442
ErrorCode err = _swift_installCrashHandler();
443443
if (err != 0) {
444444
swift::warning(0,

0 commit comments

Comments
 (0)