Re: speeding up XS_DBI_dispatch()

Tim Bunce <[email protected]>
Newsgroups gmane.comp.lang.perl.modules.dbi.sybase.devel
Message-ID <[email protected]>
On Thu, Feb 09, 2012 at 09:53:08PM +0000, Martin J. Evans wrote:
> Something between 1.616_901 and 1.616_902 changed which breaks fork() in DBI on Windows. The test 16destroy.t fails with a Windows error
> 
> "This application has requested the Runtime to terminate in an unusual way"

I'd guess that's Windows polite version of Seg Fault ot Bus Error :)
I know ~0 about windows but I seem to recall that there _might_ be
something useful in the system event logs.

> Initially I saw this in 1.617 but then I stepped backwards to find the problem occurred between these 2 versions. Some smokers have reported this problem in 5.10.1, 5.14.0 and 5.14.2. I can reproduce on my wife's netbook which is strawberry perl 5.12.0.
> 
> As you'll see from the Changes file the only 2 entries added were:
> 
>    Enhanced performance for threaded perls (Dave Mitchell, Tim Bunce)
>    Added note to DBI::Profile about async queries (Marcel Gr<FC>nauer).
> 
> I've diffed the two versions but there were quite a lot of changes and
> so far I cannot locate the problem. I've given up for tonight but
> might find time to do more.

When you get a moment could you try this change:

--- DBI.xs  (revision 15137)
+++ DBI.xs  (working copy)
@@ -3536,7 +3536,7 @@
             }
         }
 
-        if (is_orig_method_name)
+        if (0 && is_orig_method_name)
             imp_msv = (SV*)inner_method_lookup(aTHX_ DBIc_IMP_STASH(imp_xxh),
                                             cv, meth_name);
         else

which will, I think, effectively disable the runtime side of the method
cache changes.

Tim.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.