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

Reply via email to