-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rewrite Channel #3912
Rewrite Channel #3912
Conversation
how it performance in threadring benchmark https://github.com/kostya/crystal-benchmarks-game#threadring? |
Thanks for the PR @firejox. However, part of the team is currently working heavily on multi threading support, so I'd advise against submitting large changes relative to the design of channels, at least until this stabilizes. Also, besides multithreading in particular, please refrain from submitting PRs that involve large changes without opening an issue to discuss it first: otherwise you risk spending a lot of time working on an implementation for something that was not to be accepted for some particular reason. |
@kostya Yes, it would fix those issues. Every select will not run more than one times coroutine switch. and here is the performance https://gist.github.com/firejox/f9fb7c4b6d44501d0b1070c123a1fab6 |
3292b24
to
62ea749
Compare
@spalladino Sorry for without opening issue first. Now I open a issue to discuss this. |
a074dfd
to
24dad64
Compare
- Fixes crystal-lang#3900 crystal-lang#3862 - Fully thread safe except coroutine switch
24dad64
to
8b8a074
Compare
Now the rewrite is done. 😃 |
Channel and all other concurrency-related stuff are only handled by the core team. And also they are working on it so these changes won't be compatible with them. |
for the further multi thread support
I think the design of channel should be changed.