I Wrote:

> Wolfgang Lenerz writes:
>
> > > 1 - What is a Forced Free?
> <>
> > TH_FRFRE is an OS supplied piece of code - don't touch it.
> > TH_FREE is the code the thing writer supplies for a forced free (i.e.
> > the job ownning the thing is removed).
>
> Not quite. TH_FREE is called for freeing the Thing normally, ie detatching
> a User from the Thing. However TH_FFREE - the Force Free routine, is
> needed when the Thing is to be removed in its entirety, eg when a job
> owning the memory space the Thing resides in is removed.You would have to
> supply such a routine if, for example, such a Thing contained a task
linked
> to one of the Task lists.
>
> This routine is called when sms.zthg (Zap Thing) is executed.

Ah yes. There is ambiguity here. I didnt live long in the sin of unjustified
self-satisfaction: The moment my mail was irrevocably dispatched doubt
descended like a brick, so Ive now gone and checked the manual ;)

You are right AFA TH_FRFRE is concerned and I was wrong to mix up TH_FFREE
with TH_REMOV :(  The FREE-type routines relate to the Usage blocks while
REMOV relates to the actual Thing. Zap is another term for force-remove.
(But force-removal implies force-freeing.)

The documentation is rather grainy (and perhaps in some cases wrong?) You
really need a debugger to understand it. The concepts of Freeing, Removing
and Zapping are not always easily untangled.

I dont want to speculate in public on what I think I mean to avoid causing
general confusion (and personal embarrassment) I have written a number of
different Things in the past and thought I had it figured (Im sure I did!) I
would however welcome some clarification by a pundit.

Ditto re the wee matter I raised a month ago, or so, about parameter passing
to Extension Things. Some light on that subject too would be much
appreciated.

Per



Reply via email to