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.

Reply via email to