Skip to content

Commit a6af7d6

Browse files
mujacicaclaude
andcommitted
Refactor duplicated sanitizer detection preprocessor logic
Define SENTRY_SANITIZER_BUILD macro once and reuse it for both SENTRY_CRASH_DAEMON_READY_TIMEOUT_MS and SENTRY_CRASH_HANDLER_WAIT_TIMEOUT_MS instead of duplicating the complex __SANITIZE_*/__has_feature detection. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent b82e43c commit a6af7d6

1 file changed

Lines changed: 14 additions & 35 deletions

File tree

src/backends/native/sentry_crash_context.h

Lines changed: 14 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -68,49 +68,28 @@ typedef DWORD pid_t;
6868
#define SENTRY_CRASH_MAX_REGION_SIZE \
6969
(64 * 1024 * 1024) // 64MB max memory region
7070

71+
// Detect sanitizer builds (ASAN/TSAN) which are much slower
72+
#if defined(__SANITIZE_THREAD__) || defined(__SANITIZE_ADDRESS__)
73+
# define SENTRY_SANITIZER_BUILD 1
74+
#elif defined(__has_feature)
75+
# if __has_feature(thread_sanitizer) || __has_feature(address_sanitizer)
76+
# define SENTRY_SANITIZER_BUILD 1
77+
# endif
78+
#endif
79+
7180
// Timeout values for IPC and crash handling (in milliseconds)
7281
// Increased timeout for sanitizer builds which are much slower
73-
#if defined(__SANITIZE_THREAD__) || defined(__SANITIZE_ADDRESS__) \
74-
|| defined(__has_feature)
75-
# if defined(__has_feature)
76-
# if __has_feature(thread_sanitizer) || __has_feature(address_sanitizer)
77-
# define SENTRY_CRASH_DAEMON_READY_TIMEOUT_MS \
78-
30000 // 30 seconds for TSAN/ASAN builds
79-
# else
80-
# define SENTRY_CRASH_DAEMON_READY_TIMEOUT_MS \
81-
10000 // 10 seconds to wait for daemon startup
82-
# endif
83-
# else
84-
# define SENTRY_CRASH_DAEMON_READY_TIMEOUT_MS \
85-
30000 // 30 seconds for TSAN/ASAN builds
86-
# endif
82+
#if defined(SENTRY_SANITIZER_BUILD)
83+
# define SENTRY_CRASH_DAEMON_READY_TIMEOUT_MS 30000 // 30s for TSAN/ASAN
84+
# define SENTRY_CRASH_HANDLER_WAIT_TIMEOUT_MS 30000 // 30s for TSAN/ASAN
8785
#else
88-
# define SENTRY_CRASH_DAEMON_READY_TIMEOUT_MS \
89-
10000 // 10 seconds to wait for daemon startup
86+
# define SENTRY_CRASH_DAEMON_READY_TIMEOUT_MS 10000 // 10s for daemon startup
87+
# define SENTRY_CRASH_HANDLER_WAIT_TIMEOUT_MS 10000 // 10s max wait for daemon
9088
#endif
9189
#define SENTRY_CRASH_DAEMON_WAIT_TIMEOUT_MS \
9290
5000 // 5 seconds between daemon health checks
9391
#define SENTRY_CRASH_HANDLER_POLL_INTERVAL_MS \
9492
100 // 100ms poll interval in exception handler
95-
// Increased timeout for sanitizer builds
96-
#if defined(__SANITIZE_THREAD__) || defined(__SANITIZE_ADDRESS__) \
97-
|| defined(__has_feature)
98-
# if defined(__has_feature)
99-
# if __has_feature(thread_sanitizer) || __has_feature(address_sanitizer)
100-
# define SENTRY_CRASH_HANDLER_WAIT_TIMEOUT_MS \
101-
30000 // 30 seconds for TSAN/ASAN builds
102-
# else
103-
# define SENTRY_CRASH_HANDLER_WAIT_TIMEOUT_MS \
104-
10000 // 10 seconds max wait for daemon to finish
105-
# endif
106-
# else
107-
# define SENTRY_CRASH_HANDLER_WAIT_TIMEOUT_MS \
108-
30000 // 30 seconds for TSAN/ASAN builds
109-
# endif
110-
#else
111-
# define SENTRY_CRASH_HANDLER_WAIT_TIMEOUT_MS \
112-
10000 // 10 seconds max wait for daemon to finish
113-
#endif
11493
#define SENTRY_CRASH_TRANSPORT_SHUTDOWN_TIMEOUT_MS \
11594
10000 // 10 seconds for transport shutdown (increased for TSAN/ASAN builds)
11695

0 commit comments

Comments
 (0)