Revision: 3412 http://trac.macosforge.org/projects/ruby/changeset/3412 Author: ernest.prabhakar@gmail.com Date: 2010-02-02 12:58:43 -0800 (Tue, 02 Feb 2010) Log Message: ----------- Make Dispatch::Actor set persistent queue/group Modified Paths: -------------- MacRuby/trunk/lib/dispatch/actor.rb MacRuby/trunk/spec/macruby/library/dispatch/actor_spec.rb Modified: MacRuby/trunk/lib/dispatch/actor.rb =================================================================== --- MacRuby/trunk/lib/dispatch/actor.rb 2010-02-02 15:26:50 UTC (rev 3411) +++ MacRuby/trunk/lib/dispatch/actor.rb 2010-02-02 20:58:43 UTC (rev 3412) @@ -14,19 +14,20 @@ # optionally specifying the default +callback+ queue def initialize(delegate, callback=nil) super(delegate) - @default_callback = callback || Dispatch::Queue.concurrent - @callback = @default_callback + @callback = callback || Dispatch::Queue.concurrent @q = Dispatch::Queue.new("dispatch.actor.#{delegate}.#{object_id}") end - # Specify the +callback+ queue for the next async request + # Specify the +callback+ queue for async requests def _on_(callback) @callback = callback + self end - # Specify the +group+ for the next async request + # Specify the +group+ for async requests def _with_(group) @group = group + self end # Wait until the internal private queue has completed execution @@ -44,8 +45,6 @@ retval = __getobj__.__send__(symbol, *args) callback.async { block.call(retval) } if not callback.nil? end - @callback = @default_callback if not @callback == @default_callback - @group = nil if not @group.nil? return nil else #puts "\nSync #{symbol.inspect}" if symbol != :__ Modified: MacRuby/trunk/spec/macruby/library/dispatch/actor_spec.rb =================================================================== --- MacRuby/trunk/spec/macruby/library/dispatch/actor_spec.rb 2010-02-02 15:26:50 UTC (rev 3411) +++ MacRuby/trunk/spec/macruby/library/dispatch/actor_spec.rb 2010-02-02 20:58:43 UTC (rev 3412) @@ -78,7 +78,7 @@ @qs.should =~ /com.apple.root.default/ end - it "should use initial callback queue if any, when called Asynchronously" do + it "should use specified callback queue when called Asynchronously" do qn = Dispatch::Queue.new("custom") @actor2 = Dispatch::Actor.new(@actee, qn) @qs = "" @@ -87,25 +87,17 @@ @qs.should == qn.label end - it "should use callback queue specified by _on, but only once" do + it "should use callback queue specified by _on" do true.should == true end - it "should invoke actee once with group specified by _with" do + it "should invoke actee async with group specified by _with" do true.should == true end - it "should invoke actee Asynchronously when group specified by _with" do - true.should == true - end - it "should return actee when called with _done" do true.should == true end - - it "should return an actor for Dispatch.wrap" do - true.should == true - end - end + end \ No newline at end of file
participants (1)
-
source_changes@macosforge.org