On Tue, 27 Apr 2010 22:13:40 +0100, Tim Bunce <tim.bu...@pobox.com> wrote:
> On Fri, Apr 23, 2010 at 05:57:29AM -0700, hmbr...@cvs.perl.org wrote: > > +use Config; > > + > > +our $threadid = 0; # holds private thread id of driver > > > > + $this->STORE (p_threadid => $threadid); > > > > +sub CLONE > > +{ > > + $Config{usethreads} && $INC{"threads.pm"} and > > + $threadid = threads->tid (); > > + } # CLONE > > + > > > > + my $ownerid = $dbh->FETCH ("p_threadid"); > > + $ownerid == $DBD::File::dr::threadid or > > + croak "database handle is owned by thread $ownerid and this is > > $DBD::File::dr::threadid" > > The DBI method dispatch code already checks thread ownership of handles > (see DBIc_THR_USER in DBI.xs) so is this really needed? Jens? Jens asked me to include this as his threaded builds were failing. I don't use threads in production scripts. Ever. I don't even use a threaded perl for production scripts. Ever. I have some, but I only use them to test the modules. -- H.Merijn Brand http://tux.nl Perl Monger http://amsterdam.pm.org/ using 5.00307 through 5.12 and porting perl5.13.x on HP-UX 10.20, 11.00, 11.11, 11.23, and 11.31, OpenSuSE 10.3, 11.0, and 11.1, AIX 5.2 and 5.3. http://mirrors.develooper.com/hpux/ http://www.test-smoke.org/ http://qa.perl.org http://www.goldmark.org/jeff/stupid-disclaimers/