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){ } }
\put(700,275){\makebox(0,0){ } }
\put(700,175){\makebox(0,0)[l]{ } }
\put(500,275){ \makebox(0,0){ } }
\put(250,175){\makebox(0,0)[r]{ } }
\put(250,75){\makebox(0,0)[r]{ } }
\put(500,75){\makebox(0,0)[l]{ } }
\put(500,150){\makebox(0,0)[l]{ } }
\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 , the constructor process
for an object. Process
is a variant of in that they refer to the same object.
In accepting the call a goal is inserted,
with Q bound to .
The substitution are the answer substitutions
computed in evaluating .
\\ \hline
}
\end{tabular}
Suppose that we have a process that calls , with O
bound to the object of which evaluates the constructor.
When reaches an accept statement the activity
of is interrupted, and a new process is started to evaluate
which refers to the same object as .
Process resumes the evaluation of the constructor as soon as
the first answer, say , is produced.
Thereafter continues to produce alternative solutions,
as may be requested by .