% $Id: RMIcallbackthread.oz,v 1.2 2007/11/14 01:40:15 leavens Exp leavens $ % From CTM, section 5.3.3 \insert 'NewPortObject2.oz' declare proc {ServerProc Msg} % {Browse servergot(Msg)} case Msg of calc(X ?Y Client) then X1 D in {Send Client delta(D)} X1=X+D Y=X1*X1+2.0*X1+2.0 end end Server = {NewPortObject2 ServerProc} proc {ClientProc Msg} % {Browse clientgot(Msg)} case Msg of work(?Z) then Y in {Send Server calc(10.0 Y Client)} thread Z = Y+100.0 end [] delta(?D) then D=1.0 end end Client = {NewPortObject2 ClientProc} {Browse {Send Client work($)}}