Project

General

Profile

Actions

Feature #4649

closed

Adding parallel constructors to Ruby 2.0

Added by rosenfeld (Rodrigo Rosenfeld Rosas) almost 13 years ago. Updated over 11 years ago.

Status:
Rejected
Target version:
-
[ruby-core:36013]

Description

I was not sure if this was RubySpec or Feature type.

My request is to create some new syntax for easing the write of concurrent code with Ruby. The syntax could be something like this:

parallels do
task "get response from service A" do # optional description
a = IO.read("http://serviceA/request")
end
task { b = get_response_from_service_b }
end

at this point both tasks have finish, it's like a join in the threads at the end of the parallel block.

call_another_service_that_depends_on(a and b)

I am not sure, though, how to deal with scopes inside the parallel block. Traditionally in Ruby, this wouldn't work because both 'a' and 'b' would be local to the 'task' block and would not be accessible from the outside of the parallel block. If we don't want instance variables, I don't know what is the best approach for avoiding some "a=nil; b=nil" before the parallel block.

Maybe this could start as a gem, but having it implemented directly in Ruby would be awesome, specially for scripts that usually don't rely in external dependencies for simplifying distribution...

Any thoughts about this propose?


Files

feature-4649.odp (18.1 KB) feature-4649.odp Slide for presentation to Matz rosenfeld (Rodrigo Rosenfeld Rosas), 06/08/2012 03:22 AM
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0