DBIx-Path
view release on metacpan or search on metacpan
lib/DBIx/Path.pm view on Meta::CPAN
root node.
=cut
for my $field qw(id pid name) {
no strict 'refs';
*{$field}=sub { $_[0]->{$field} }
}
{
my $locked=0;
sub _lock {
my($me, $type)=@_;
$locked++;
if($locked == 1 and $me->{hooks}{lock}) {
$me->{hooks}{lock}->($me->{dbh}, $type);
}
}
sub _unlock {
my($me, $type)=@_;
if($locked == 1) {
$me->{hooks}{unlock}->($me->{dbh}, $type) if $me->{hooks}{unlock};
}
elsif($locked == 0) {
croak "DBIx::Path: PANIC: Key won't fit in lock";
}
$locked--;
}
END {
if($locked) {
warn "DBIx::Path: WARNING: Program may have exited with lock(s) still held";
}
}
}
sub _row_to_obj {
my($id, $pid, $name)=@{$_[1]};
(ref $_[0])->new(%{$_[0]}, id => $id, pid => $pid, name => $name);
}
( run in 0.610 second using v1.01-cache-2.11-cpan-49f99fa48dc )