Skip to content

Remove channel processors - #310

Merged
thomhurst merged 3 commits into
mainfrom
feature/remove-channel-processors
Aug 10, 2025
Merged

Remove channel processors#310
thomhurst merged 3 commits into
mainfrom
feature/remove-channel-processors

Conversation

@thomhurst

Copy link
Copy Markdown
Owner

No description provided.

- Removed all Channel processor classes and interfaces
- Removed ProcessWithChannel() methods from all builder classes
- Removed Channel-related extension methods
- Removed Channel processor tests and examples
- Kept System.Threading.Channels package for internal ParallelExtensions optimization

This simplifies the API by removing the Channel-based processing option,
which was redundant with the existing parallel processing methods.
- Removed all isIOBound parameters and logic from ParallelExtensions
- Removed System.Threading.Channels package reference
- Refactored AsyncEnumerable processors to use semaphores instead of Channels
- Removed ChannelItemTaskWrapper structs from TaskWrapper.cs
- Simplified parallel processing to always use Task.Run for consistency

This simplifies the codebase by removing the I/O vs CPU-bound distinction
and eliminates the dependency on System.Threading.Channels, using standard
semaphore-based concurrency control instead.
- Mark MeasureParallelProcessingTime_200ItemsWithThreadSleep with [NotInParallel]
- Mark MeasureParallelProcessingTime_200ItemsWithDirectThreadSleep with [NotInParallel]
- Prevents thread pool exhaustion from affecting other tests running in parallel

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

Co-Authored-By: Claude <noreply@anthropic.com>
@thomhurst
thomhurst merged commit afb3c67 into main Aug 10, 2025
2 of 4 checks passed
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