On Tue, Feb 21, 2006 at 02:35:18PM +0000, Nicholas Clark wrote:
> On Tue, Feb 21, 2006 at 12:47:44PM +0100, Andreas J. Koenig wrote:
> > As the subject line says. Diagnosed with a debugging, unthreaded perl
> > on Debian. Let me know if I shall provide more info.
>
> Well, DBI is cheating rather a lot, including copying code from core perl,
Guilty as charged, sir. But, in my defense, it is very fast! :)
> so personally I'd prefer to see it patched slightly rather than revert a
> change that saves 1 pointer per CV. (Which I think adds up to about 2k per
> thread on moderate sized programs, and scale from there)
I agree entirely. Patch applied. Thanks!
DBI 1.51 should be out within a week, or so.
I missed/deleted the start of this thread (if there was one).
Can someone bounce the earlier messages to me?
Tim.
> --- DBI.xs.orig Tue Dec 13 15:46:17 2005
> +++ DBI.xs Tue Feb 21 14:20:33 2006
> @@ -22,6 +22,9 @@ static int xsbypass = 0; /* disable XSUB
> #else
> static int xsbypass = 1; /* enable XSUB->XSUB shortcut */
> #endif
> +#ifndef CvISXSUB
> +#define CvISXSUB(sv) CvXSUB(sv)
> +#endif
>
> #define DBI_MAGIC '~'
>
> @@ -2801,7 +2804,8 @@ XS(XS_DBI_dispatch) /* prototype
> */
>
> /* SHORT-CUT ALERT! */
> - if (xsbypass && isGV(imp_msv) && CvXSUB(GvCV(imp_msv))) {
> + if (xsbypass && isGV(imp_msv) && CvISXSUB(GvCV(imp_msv))
> + && CvXSUB(GvCV(imp_msv))) {
>
> /* If we are calling an XSUB we jump directly to its C code and
> * bypass perl_call_sv(), pp_entersub() etc. This is fast.