
[;1m  trace_delivered(Tracee)[0m

  Calling this function makes sure all trace messages have been
  delivered.

  The delivery of trace messages (generated by [;;4merlang:trace/3[0m, [;;4m[0m
  [;;4mseq_trace[0m, or [;;4merlang:system_profile/2[0m) is dislocated on the
  time-line compared to other events in the system. If you know that [;;4m[0m
  [;;4mTracee[0m has passed some specific point in its execution, and you
  want to know when at least all trace messages corresponding to
  events up to this point have reached the tracer, use [;;4m[0m
  [;;4merlang:trace_delivered(Tracee)[0m.

  When it is guaranteed that all trace messages are delivered to the
  tracer up to the point that [;;4mTracee[0m reached at the time of the
  call to [;;4merlang:trace_delivered(Tracee)[0m, then a [;;4m[0m
  [;;4m{trace_delivered, Tracee, Ref}[0m message is sent to the caller of [;;4m[0m
  [;;4merlang:trace_delivered(Tracee)[0m .

  Notice that message [;;4mtrace_delivered[0m does not imply that trace
  messages have been delivered. Instead it implies that all trace
  messages that are to be delivered have been delivered. It is not
  an error if [;;4mTracee[0m is not, and has not been traced by someone,
  but if this is the case, no trace messages have been delivered
  when the [;;4mtrace_delivered[0m message arrives.

  Notice that [;;4mTracee[0m must refer to a process currently or
  previously existing on the same node as the caller of [;;4m[0m
  [;;4merlang:trace_delivered(Tracee)[0m resides on. The special [;;4mTracee[0m
  atom [;;4mall[0m denotes all processes that currently are traced in the
  node.

  When used together with a Tracer Module, any message sent in the
  trace callback is guaranteed to have reached its recipient before
  the [;;4mtrace_delivered[0m message is sent.

  Example: Process [;;4mA[0m is [;;4mTracee[0m, port [;;4mB[0m is tracer, and process [;;4m[0m
  [;;4mC[0m is the port owner of [;;4mB[0m. [;;4mC[0m wants to close [;;4mB[0m when [;;4mA[0m
  exits. To ensure that the trace is not truncated, [;;4mC[0m can call [;;4m[0m
  [;;4merlang:trace_delivered(A)[0m when [;;4mA[0m exits, and wait for message [;;4m[0m
  [;;4m{trace_delivered, A, Ref}[0m before closing [;;4mB[0m.

  Failure: [;;4mbadarg[0m if [;;4mTracee[0m does not refer to a process (dead or
  alive) on the same node as the caller of [;;4m[0m
  [;;4merlang:trace_delivered(Tracee)[0m resides on.
