|Subject:||Avoid use of DBIS macro in driver internals|
Avoid use of DBIS macro in driver internals because it's very slow on perls configured with threading enabled (which is the case on most linux distributions).%3E&F=1&n=1&C=0 Replace with DBIc_DBISTATE(imp_xxh) in the general case. For DBIS->debug you should use DBIc_TRACE(imp_xxh, flags, flaglevel, level). See DBIXS.h for details. To make those changes you may need to pass the imp_xxh struct pointer into functions. (Passing both SV *h, the handle, and imp_xxh is recommended). While you're doing that, you should also aim to eliminate use of dTHR. That's also expensive and occurs frequently in the code: 1.22_02&string=dTHR&F=1&n=1&C=0 Fix that by adding pTHX_ as the first param (with no trailing comma) of the function that calls dTHR, and adding aTHX_ as the first argument in all the calls.