| Addresses | is a list of name/3 
or name_seq/3 addresses for the services 
to be monitored. | 
| Goal | is a predicate that will be called when 
a worker's publication status changes. The Goal is called 
exactly once per event with its the last argument unified with the 
structure: 
published(-NameSeq, -PortId)when the worker binds its socket to the address.withdrawn(-NameSeq, -PortId)when the worker unbinds its socket from the address. 
 | 
| Timeout | is optional. It is one of: 
Timeouta non-negative real number that specifies the number of seconds that 
surveillance is to be continued.infinitecauses the monitor to run forever in the current thread (e.g. never 
returns).detached(-ThreadId)causes the monitor to run forever as a separate thread. ThreadId is 
unified with the thread identifier of the monitor thread. This is useful 
when the monitor is required to provide continuous surveillance, while 
operating in the background. 
 |