I have updated pmaps for exceptions. I actually ended up useing the
second approach of adding a return class to results to differentiate
exceptions and normal flow so the code is different from yesterday.
You can find this code in the master of my repo. It should now be a
fast forward from the erlware/master head. There is something else I
want to bring up in terms of the design of this module.

The module currently handles timeout in two conflicting manners. In
map a timeout is returned in the final mapped list as if it were
application level. Filter, it treats timeout like false and excludes
it from the returned list; which is not congruent with how map treats
it. Why not treat timeout like true and include timeout in the list as
further application level results like in map? The choice is not
consistent in this module currently.

If a process does not return a value perhaps it should be excluded
from the results of map. A map presumes a map across all elements. If
one does not work adding in 'timeout' as a substitute is not strictly
correct. In any case it appears to me that there are two modes that
seem correct:

1. asyncronous, excluding timeout and not treating it as an
application level return value
2. atomic/syncronous such that all operations/processes must succeed
in that they return an application level result or the whole plist
operation fails.

I will admit that having the timeouts is valuable but returning them
simply as timeout, when that could actually be an valid return value
from a process that does not timeout is not good practice. At the
least, given erlangs lack of types which hurts in this case, returning
something obscure like gen_server:cast does underneath makes sense;
something like '$timeout$' as ugly as that is.

Cheers,
Martin


-- 
Martin Logan
Erlang & OTP in Action (Manning) http://manning.com/logan
http://twitter.com/martinjlogan
http://erlware.org

-- 
You received this message because you are subscribed to the Google Groups 
"erlware-dev" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/erlware-dev?hl=en.

Reply via email to