declare fun {NewStat Class Init} Obj={New Class Init} P in thread S in {NewPort S P} for M#X in S do try {Obj M} X=normal catch E then try X=exception(E) catch system(dp(...) ...) then skip /* client failure detected */ end end end end proc {$ M} X in try {Send P M#X} catch system(dp(...) ...) then raise serverFailure end end case X of normal then skip [] exception(E) then raise E end end end end