On 16 Apr 2002, at 11:15, Timothy Swenson wrote:

(things)
Hi, just a few small answers that may point you in the right 
direction:

> 
> 1 - What is a Forced Free?
> I know that you FREE a THING when an application stops using it, but I can't
> find an explanation for FORCED FREE.

Forced free is when the job owning the thing is removed. A thing 
could be set up in such a way that the linkage block is not stored 
in the common heap, but within the memory area of a job. When 
that job disapperas, so will the thing. Hence a routine to make sure 
that all other jobs using this thing will also disappear - that is 
forced free.


> 2 - What is a Forced Zap?
> The TT docs talk about ZAP and use the term FORCED ZAP in defining the THING
> table.  It looks like a FORCED ZAP is just another word for ZAP.  Is this correct?

Sorry, I wan't able to find where it mentiones a forced zap. A zap is 
normally the removal of a thing. You can force remove a thing.


> 3 - Pointer to "close" routine vs. Pointer to code
> In the THING table, TH_FRFRE is defined as a Pointer to "close" routine for
> Forced Free, and TH_FFREE is defined as a Pointer to code to Force Free a THING.
>  What's the difference between the "close" routine and code for Forced Free.
>  Would these two pointers point to the same code or are they two unique pieces
> of code that do two different operations?  To me it looks like the two pointers
> are redudant.

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).

> 4 - How long is a THING name?
> TH_NAME in the THING table does not seem to have a definition of how long it
> should be.  It is defined as a QDOS string which has a terminating character?
>  Is there any limitation on size?

Th_name is defined as a "string" - hence the usual length word 
followed by the name itself (ha -so we KNOW the length of a piece 
of string!). There is no limit on the length other than that imposed 
by using a length word. (is a 32K long name long enough?)

> 5 - THING Header
> I'm guessing that the THING Header (as defined by TT) is part of the THING code
> itself (as pointed to by TH_THING) and not part of the THING table. 
yes.

> If so,
> is the header the first bit of code in the THING?
It probably isn't "code", but it is to where TH_thing points.
The header is just an area of memory containing some information 
about the thing itself - it doesn't contain any (executable) code.
 
> Hopefully someone will know the answers to these questions and take the time
> to enlighten me.
I hope I have succedded.

Wolfgang

Reply via email to