[macruby-changes] [3612] MacRuby/trunk/lib/dispatch/README.rdoc

source_changes at macosforge.org source_changes at macosforge.org
Wed Feb 24 16:37:51 PST 2010


Revision: 3612
          http://trac.macosforge.org/projects/ruby/changeset/3612
Author:   ernest.prabhakar at gmail.com
Date:     2010-02-24 16:37:51 -0800 (Wed, 24 Feb 2010)
Log Message:
-----------
Cleanup Dispatch Enumerable headings

Modified Paths:
--------------
    MacRuby/trunk/lib/dispatch/README.rdoc

Modified: MacRuby/trunk/lib/dispatch/README.rdoc
===================================================================
--- MacRuby/trunk/lib/dispatch/README.rdoc	2010-02-25 00:37:41 UTC (rev 3611)
+++ MacRuby/trunk/lib/dispatch/README.rdoc	2010-02-25 00:37:51 UTC (rev 3612)
@@ -164,13 +164,13 @@
 	job.join
 	p n # => 0 
 
-== Iterators
+== Dispatch Enumerable: Parallel Iterations
 
 Jobs are useful when you want to run a single item in the background or to run many different operations at once. But if you want to run the _same_ operation multiple times, you can take advantage of specialized GCD iterators.  The Dispatch module defines "p_" variants of common Ruby iterators, making it trivial to parellelize existing operations.  
 
 In addition, for simplicity they all are _synchronous_, meaning they won't return until all the work has completed.
 
-=== Integer#p_times ===
+=== Integer#p_times
 
 The simplest iteration is defined on the +Integer+ class, and passes the index that many +times+:
 
@@ -184,11 +184,9 @@
 
 It doesn't change the result, but schedules fewer blocks thus amortizing the overhead over more work. Note that items _within_ a stride are executed in the original order, but no order is guaranteed _between_ strides.
 
-=== Enumerable ===
-
 The +p_times+ method is used to implement several convenience methods on +Enumerable+, which are therefore available from any class which mixes that in (e.g, +Array+, +Hash+, etc.). These also can take an optional stride.
 
-==== p_each ====
+=== Enumerable#p_each
 
 Passes each object, like +each+:
 
@@ -196,7 +194,7 @@
 
 	%w(Mon Tue Wed Thu Fri).p_each(3) { |day| puts day} # =>  Thu Fri Mon Tue Wed
 
-==== p_each_with_index ====
+=== Enumerable#p_each_with_index
 
 Passes each object and its index, like +each_with_index+:
 
@@ -204,7 +202,7 @@
 
 	%w(Mon Tue Wed Thu Fri).p_each(3) { |day, i | puts "#{i}:#{day}"} # => 3:Thu 4:Fri 0:Mon 1:Tue 2:Wed 
 
-==== p_map ====
+=== Enumerable#p_map
 
 Passes each object and collects the transformed values, like +map+:
 
@@ -212,7 +210,7 @@
 
 	(0..4).p_map(3) { |i| 10**i } # => [1000, 10000, 1, 10, 100]
 
-==== p_mapreduce ====
+=== Enumerable#p_mapreduce
 
 Unlike the others, this method does not have a serial equivalent, but you may recognize it from the world of {distributed computing}[http://en.wikipedia.org/wiki/MapReduce]:
 
@@ -226,7 +224,7 @@
 
 	(0..4).p_mapreduce([], :concat, 3) { |i| [10**i] } # => [1000, 10000, 1, 10, 100]
 
-==== p_findall ====
+=== Enumerable#p_findall
 
 Passes each object and collects those for which the block is true, like +findall+:
 
@@ -234,7 +232,7 @@
 
 	(0..4).p_findall(3) { |i| i.odd?} # => {3, 1}
 	
-==== p_find ====
+=== Enumerable#p_find
 
 Passes each object and returns nil if none match. Similar to +find+, it returns the first object it _finds_ for which the block is true, but unlike +find+ that may not be the _actual_ first object since blocks -- say it with me -- "may complete out of order":
 
@@ -244,12 +242,10 @@
 
 	(0..4).p_findall(3) { |i| i.odd?} # => 3
 
----
-= UNDER CONSTRUCTION = 
 
-== Events
+== Dispatch::Sources: Asynchronous Events
 
-In addition to scheduling blocks directly, GCD makes it easy to run a block in response to various system events, including:
+In addition to scheduling blocks directly, GCD makes it easy to run a block in response to various system events via a Dispatch::Source, which supports:
 
 * Timers
 * Signals
@@ -260,6 +256,8 @@
 	
 When the source “fires,” GCD will schedule the handler on the specific queue if it is not currently running, or -- more importantly -- coalesce pending events if it is. This provides excellent responsiveness without the expense of either polling or binding a thread to the event source.  Plus, since the handler is never run more than once at a time, the block doesn’t even need to be reentrant.
 
+---
+= UNDER CONSTRUCTION = 
 === Timer Example
 
 For example, this is how you would create a timer that prints out the current time every 30 seconds -- plus 5 microseconds leeway, in case the system wants to align it with other events to minimize power consumption.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20100224/397f962a/attachment-0001.html>


More information about the macruby-changes mailing list