Skip to content

feat: add lazy init to batcher - #1611

Closed
JoshuaMoelans wants to merge 3 commits into
joshua/chore/set_default_metrics_truefrom
joshua/feat/lazy_batcher_init
Closed

feat: add lazy init to batcher#1611
JoshuaMoelans wants to merge 3 commits into
joshua/chore/set_default_metrics_truefrom
joshua/feat/lazy_batcher_init

Conversation

@JoshuaMoelans

@JoshuaMoelans JoshuaMoelans commented Mar 30, 2026

Copy link
Copy Markdown
Member
  • to avoid always running batcher thread even if no metrics are sent
  • does add single atomic fetch on each enqueue (TBD)

possibly part of #1609

#skip-changelog

- to avoid always running batcher thread even if no metrics are sent
- does add single atomic fetch on each enqueue (TBD)
@github-actions

github-actions Bot commented Mar 30, 2026

Copy link
Copy Markdown
Messages
📖 Do not forget to update Sentry-docs with your feature once the pull request gets approved.

Generated by 🚫 dangerJS against 60df4b5

JoshuaMoelans and others added 2 commits March 30, 2026 17:11
…close

Rename STOPPED → IDLE to clarify it means "not yet started" (retryable),
and introduce SHUT_DOWN as a terminal state that start_thread refuses to
transition from. This closes a race where a concurrent enqueue could
respawn the batcher thread after sentry_close() had already torn down
the transport.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The spawned batcher thread received a raw pointer without its own
refcount, and shutdown could join a zeroed-out thread handle when
start_thread was between the CAS and pthread_create.

- Add thread refcount: increment before spawn, release on thread exit
- Add thread_spawned atomic flag so shutdown waits for a valid handle
- Use CAS on spawn failure to avoid overwriting SHUT_DOWN state

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@JoshuaMoelans

Copy link
Copy Markdown
Member Author

closing in favor of #1612 (already merged into #1609 )

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

1 participant