Raphael Collet wrote:
Paolo Veronelli wrote:
proc {Send P M} Mr in
lock Lock then
if {IsRecord M} andthen
for A in {Arity M} default:true return:R do
for V in {Dictionary.condGet Validators A [(fun {$ R} true
end)]} do
if {Not {V M}} then {R false} end
end
end
then M|!!Mr = (P.Name):= Mr end
end
end
Side remark: beware about variable names. Never call a list List, a
lock Lock, or a name Name, because those are module names. (You don't
call yourself "Human", right? ;-)
The right names are important for me, so I use most generic ones at the
beginning of my experiments :) .Well every good master tries to destroy
my habit ,but .....
Note that you can use a real port for putting the message on the stream.
Simply replace the cell exchange by something like
{Port.send P.port M}
> If you don't want the caller to wait, you should send the
message, and filter the stream afterwards.
I'm having problems in filtering an unbounded tail list.Consider it will
grow forever.I want to cut it in chunks.Which is the right approach?
What happens when I produce that procedure on the internet as a
service.Will it be async?
Yes, provided you use a real port as I suggested above. This is because
distributed cells behave differently. Ports are more efficient.
From this I guess the procedure will be executed on the sender
machine.Right?
Is this a general rule?
And using cell implies having the cell hosted (for a while?) on the
sender machines to change its contents.While using a port implies change
it only on the owner machine.(I go to reread docs about distributed
programming).
Thanks
Paolino
___________________________________
Yahoo! Messenger: chiamate gratuite in tutto il mondo
http://it.messenger.yahoo.com
_________________________________________________________________________________
mozart-users mailing list
[email protected]
http://www.mozart-oz.org/mailman/listinfo/mozart-users