Skip to content

Conversation

@adamw
Copy link
Member

@adamw adamw commented Sep 24, 2025

Port of the data race fix from Ox project (softwaremill/ox#346).

The original implementation used separate channels for child outputs and completion signals, which could lead to race conditions. This change unifies them into a single channel using a sealed interface hierarchy, eliminating the race condition.

Changes:

  • Replace separate childOutput and childDone channels with unified ChildOutput channel
  • Introduce ChildOutput sealed interface with ChildValue and ChildDone implementations
  • Update channel selection logic to handle unified output channel
  • Add stress test to validate the fix (100k iterations)

🤖 Generated with Claude Code

adamw and others added 3 commits September 24, 2025 12:00
Port of the data race fix from Ox project (softwaremill/ox#346).

The original implementation used separate channels for child outputs
and completion signals, which could lead to race conditions. This
change unifies them into a single channel using a sealed interface
hierarchy, eliminating the race condition.

Changes:
- Replace separate childOutput and childDone channels with unified ChildOutput channel
- Introduce ChildOutput sealed interface with ChildValue and ChildDone implementations
- Update channel selection logic to handle unified output channel
- Add stress test to validate the fix (100k iterations)

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
@adamw adamw merged commit edd806a into main Sep 24, 2025
2 checks passed
@adamw adamw deleted the fix/groupby-data-race branch September 24, 2025 10:16
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.

2 participants