> How long are the TSRMLS_D/C parameters good for?
>
The life of a given thread.
> Can the resultant tsrm_ls value be safely stored?
>
Yes, but only during the life of a thread. For practical purposes, you
should consider this to mean the life of a request since there is no
guarantee that subsequent requests will be serviced by the same thread.
> I presume the answer is no, and these paramters
> should be passed in each time a function is called,
> but I would be curious to know differently, if for example
> it could be passed in once at (external object) creation time,
> and that object could use the trsm_ls directly, rather than the
> TSRMLS_D/C semantics.
>
Yes, and I've done that on more than one occasion.
A given tsrm_ls value is tied to a thread (and uniquely identifies that
thread). Since a given request never jumps from one thread to another (It
stays in the thread it was born in), the tsrm_ls you get at one point in a
request will be the tsrm_ls you get at another point in a request.
-Sara
http://blog.libssh2.org/index.php?/archives/22-What-the-heck-is-TSRMLS_CC-anyway.html