concurrent-ruby
concurrent-ruby copied to clipboard
Modern concurrency tools including agents, futures, promises, thread pools, supervisors, and more. Inspired by Erlang, Clojure, Scala, Go, Java, JavaScript, and classic concurrency patterns.
with https://github.com/ruby/ruby/pull/3983 , rubyc includes c macros to do atomic operations. should we use these for the atomic operations? * Operating system: linux / mac / win * Ruby implementation:...
I found that `Concurrent::Channel` is great for representing stream data. Initial problem was, that I needed to stream data in JRuby with Sinatra (so i stuck with Puma and was...
``` * `concurrent-ruby` version: 1.1.7 * `concurrent-ruby-edge` used: yes ``` I am running this simple code and I see that `select` is not blocking on the `channels` and instead always...
Thank you for all your hard work on the latest 1.1.6 release. I recently upgraded our app gems and started noticing the passenger workers would become unresponsive (request queue =...
`Promise.zip` seems to hang with any rejected promise in its collection for large enough collections (several hundred items). Here is a minimal repro: ```ruby 1.upto(1000).map do |n| puts n promises...
I'm running example from [Promises::Channel docs](https://ruby-concurrency.github.io/concurrent-ruby/master/Concurrent/Promises/Channel.html). ``` channel = Concurrent::Promises::Channel.new 2 log = Concurrent::Array.new # => [] def produce(channel, log, producer, i) log.push format "producer %d pushing %d", producer, i...
I have been seeing a failure on and off when running concurrent-ruby's specs against JRuby head. I believe this failure in the cylic barrier specs may have a bug: ```...
Is there an easy way to wait for an Actor to terminate? I'm aware that I can wait till all messages are processed: ```ruby actor = MyActor.spawn(name: 'actor') actor
Hey, I have a deadlock problem, code snippet like this: ```ruby thread_pool = Concurrent::FixedThreadPool.new(3) res = Concurrent::ThreadLocalVar.new({}) while @queue.size > 0 do thread_pool.post do cur = @queue.pop build_res = start(cur)...
When an error occurs within some code running inside concurrent-ruby executor, it ends up with something like this, while loosing the info about the true origin of the code: ```...