At 12:18 PM 8/11/00 -0400, Uri Guttman wrote:
> >>>>> "NI" == Nick Ing-Simmons <[EMAIL PROTECTED]> writes:
>
>   NI> Uri Guttman <[EMAIL PROTECTED]> writes:
>
>   >> i think we do because a thread can block on a mailbox while it can't on
>   >> an array.
>
>   NI> Why not ? - I see no reason that a "shared" array could not have
>   NI> whatever-it-takes to allow blocking.
>
>then every op that could touch an array has to have code to support
>blocking.

Nope. The code that accessses the array needs to support it. Different 
animal entirely. The ops don't actually need to know.

>i think that would be a mess. and what is the definition of
>blocking on an array, is it empty? can i pop or shift it? how do you
>handle atomicity? how do you specify a non-blocking access (poll) on an array?
>
>mailboxes are defined to work fine with those requirements. a get on a
>mailbox will block until one item is retrieved and that is an atoamic
>operation. a get can be made non-blocking (polling) with a optional
>argument.

s/mailboxes/filehandles/;

If we're talking a generic communication pipe between things, we should 
overload the filehandle. It's a nice construct that provides an ordered, 
serialized, blockable, pollable communications channel with well-defined 
behavior and a comfortable set of primitives to operate on it.

                                        Dan

--------------------------------------"it's like this"-------------------
Dan Sugalski                          even samurai
[EMAIL PROTECTED]                         have teddy bears and even
                                      teddy bears get drunk

Reply via email to