phobos commit, revision 2046

user: sean

msg:
Eliminated use of ".field" for Tuple field access now that it's no longer 
necessary.

Fixed the occlusion detection for receive() so that functions returning a value 
(assumed to be bool) do not occlude following functions accepting the same 
parameter list.

Changed the handling of an OwnerTerminated message so that the OwnerTerminated 
exception will be thrown immediately on receipt instead of delaying the throw 
until a receive() is issued where the receive must block and wait for a new 
message to arrive.  Since message arrival is indeterminate (ie. network latency 
and other factors affect how long it will take for a message to arrive), there 
was no provable difference between the existing guarantee and the much simpler 
guarantee that OwnerTerminated is not thrown until all messages have been 
received from the owner only.  Although the early actor model didn't even 
require messages from a specific sender to arrive in order, experience has 
shown this guarantee to be too weak for practical use in many scenarios (it's 
equivalent to having a weak memory model in a SMP system).  So std.concurrency 
will guarantee that all messages from a particular sender will arrive in order 
and thus the OwnerTerminated message will necessarily be th!
 e last message received from the receiver's owner, so when this message is 
encountered an OwnerTerminated exception will be thrown immediately.

Slightly changed the handling of LinkTerminated vs. OwnerTerminated messages so 
that an OwnerTerminated exception will always be thrown if the sender is the 
recipient's owner, regardless of any existing links between the processes.  The 
link is broken if it exists though.

http://www.dsource.org/projects/phobos/changeset/2046

_______________________________________________
phobos mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/phobos

Reply via email to