Subject Re: [Firebird-Architect] Re: External procedures: implementation proposal.
Author David Jencks
On Jul 26, 2005, at 9:08 AM, Roman Rokytskyy wrote:

>> But seriously, we can't possibly discuss parameter passing and APIs
>> without know what semantics must attach to them.
>
> Same semantics that applies to the UDFs where values are passed by
> descriptor. PARAMDSC is the descriptor itself, it describes what data
> are stored in some area of memory. Just raw data in a format that we
> define. The external procedure just reads raw data and returns raw
> data.
>
>> TLV? What's TLV? Looks like another TLA to me. I can handle POV,
>> though.
>
> TLV - Thread-Local Variable. Sorry if that's my invention, so far
> people understood it. Aleksey Karyakin corrects me that it should be
> TLS and tells that it is bad thing to do.
>
> Now I'm going to educate myself about TLSes and why they are evil in
> C++, because in Java (and J2EE in particular) that is quite acceptable
> way to handle things.

Opinions differ on this :-). I think thread locals are a dreadful hack
and should be eliminated wherever possible. They are normally a way to
tell component C about the context available in A without telling B,
the guy in the middle. You often get into this problem by forcing B to
look up the resources he needs in some generic way. Whenever possible
I think it is a much better design to supply B (and C) with the
resources he will need directly. I haven't looked at any of the code
here but IIUC this is basically what Jim is proposing.

thanks
david jencks

>
> Roman
>
>
>
>
>
>
> Yahoo! Groups Links
>
>
>
>
>