Calling a method of an active object results in a rendez-vous, when that object is willing to accept the call. The interaction between the processes involved is pictured below. \setlength{\unitlength}{0.01cm} \nop{ ) } \hspace{1.0cm} \begin{tabular}[t]{|p{ 10.2cm}|} \hline \begin{picture}(1000,325)(0,0) \put(250,275){\makebox(0,0){ %a } } \put(700,275){\makebox(0,0){ %b } } \put(700,175){\makebox(0,0)[l]{ accept(...,m,...) } } \put(500,275){ \makebox(0,0){ %b' } } \put(250,175){\makebox(0,0)[r]{ O!m(t) } } \put(250,75){\makebox(0,0)[r]{ } } \put(500,75){\makebox(0,0)[l]{ %h_1,%h_2,... } } \put(500,150){\makebox(0,0)[l]{ m(t) } } \put(250,75){\circle{10}} \put(250,175){\circle{10}} \put(500,75){\circle{10}} \put(500,150){\circle*{10}} \put(700,175){\circle{10}} \put(700,75){\circle{10}} \put(250, 185){\line(0,6){ 50}} \put(250, 65){\line(0,-6){25}} \put(700, 185){\line(0,6){ 50}} \put(700, 65){\line(0,-6){ 50}} \multiput(500, 85)(0, 20){ 3}{\line(0,6){10}} \multiput( 260,75)(10,0){ 25}{\line(6,0){5}} \put( 270,75){\vector(-4,0){ 20}} \multiput( 260,175)(10,0){ 45}{\line(6,0){5}} \end{picture} \\ \hline \nop{ \small We assume that O is bound to %b, the constructor process for an object. Process %b' is a variant of %b in that they refer to the same object. In accepting the call a goal Q? is inserted, with Q bound to %b'. The substitution %h_1,%h_2,... are the answer substitutions computed in evaluating m(t). \\ \hline } \end{tabular} Suppose that we have a process %a that calls O!m(t), with O bound to the object of which %b evaluates the constructor. When %b reaches an accept statement the activity of %b is interrupted, and a new process %b' is started to evaluate m(t) which refers to the same object as %b. Process %b resumes the evaluation of the constructor as soon as the first answer, say %h_1, is produced. Thereafter %b' continues to produce alternative solutions, as may be requested by %a.