This function creates a new Worker, or reuses the one at location.
Specifically: <orderedlist> <listitem><para>if *location is null, then
a new Worker is created. In this case if allow_destroy is
false, then the returned Worker's reference count is 2,
thus preventing it form ever being destroyed (unless unref is called somewhere else)
</para></listitem> <listitem><para>if *location is not null, the
the Worker it points to is returned, its reference count increased by 1</para><
/listitem> </orderedlist>
When the returned Worker's reference count reaches 0, then it is destroyed, and *
location is set to null.
In any case, the returned value is the same as *location.
| location |
a place to store and test for existence, not null |
| allow_destroy |
defines if the created |
|
a Worker |