2
Calling an active object’s destructor blocks the caller:
•Till object’s execution ends. Only case of blocking w/o “wait.”
•Join points are typically at block exits. Supports ganging.
• {
  active C c;
  …
} // waits for c to complete
•Can directly express tasks/process hierarchies (tasks that own other tasks) by associating member lifetimes.
• active class C {
  active M m; // embedded member
  …
};
• // later
{
  active C c;
  …
} // waits for c & c.m to complete
Destructor/Dispose Semantics