Skip to content

feat: add lazy init to batcher#1611

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

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

Conversation

@JoshuaMoelans
Copy link
Copy Markdown
Member

@JoshuaMoelans JoshuaMoelans commented Mar 30, 2026

  • 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
Copy link
Copy Markdown

github-actions bot commented Mar 30, 2026

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant