File Coverage

blib/lib/Ref/Store/ThreadUtil.pm
Criterion Covered Total %
statement 31 47 65.9
branch n/a
condition n/a
subroutine 11 16 68.7
pod 0 4 0.0
total 42 67 62.6


line stmt bran cond sub pod time code
1             package Ref::Store::ThreadUtil::OldLookups;
2 2     2   10 use strict;
  2         4  
  2         46  
3 2     2   10 use warnings;
  2         5  
  2         48  
4 2     2   12 use Ref::Store::Common;
  2         3  
  2         271  
5              
6             my @Lookups;
7             BEGIN {
8 2     2   48 @Lookups = qw(forward reverse attr_lookup scalar_lookup);
9             }
10             use Class::XSAccessor::Array
11 2     2   803 accessors => { %Ref::Store::Common::LookupNames };
  2         5738  
  2         22  
12              
13             sub new {
14 0     0     my ($cls,$old_table) = @_;
15 0           my %options = ();
16 0           my $self = [];
17 0           foreach my $idx (
18             HR_TIDX_RLOOKUP, HR_TIDX_FLOOKUP,
19             HR_TIDX_ALOOKUP, HR_TIDX_SLOOKUP) {
20 0           $self->[$idx] = { %{$old_table->[$idx]} };
  0            
21             }
22 0           bless $self, $cls;
23             }
24              
25             package Ref::Store::ThreadUtil;
26 2     2   1049 use strict;
  2         4  
  2         48  
27 2     2   9 use warnings;
  2         4  
  2         46  
28 2     2   8 use base qw(Exporter);
  2         4  
  2         144  
29             our @EXPORT;
30 2     2   11 use constant HR_THR_AENCAP_PREFIX => '__PP_AENCAP:';
  2         4  
  2         108  
31 2     2   11 use constant HR_THR_KENCAP_PREFIX => '__PP_KENCAP:';
  2         6  
  2         95  
32 2     2   11 use constant HR_THR_LINFO_PREFIX => '__PP_OLD_LOOKUPS:';
  2         2  
  2         386  
33              
34             push @EXPORT, qw(
35             HR_THR_AENCAP_PREFIX
36             HR_THR_KENCAP_PREFIX
37             HR_THR_LINFO_PREFIX
38             );
39              
40             sub hr_thrutil_store_linfo {
41 0     0 0   my ($old_table,$ptr_map) = @_;
42 0           my $linfo = Ref::Store::ThreadUtil::OldLookups->new($old_table);
43 0           $ptr_map->{ HR_THR_LINFO_PREFIX . ($old_table + 0) } = $linfo;
44             }
45              
46             sub hr_thrutil_get_linfo {
47 0     0 0   my ($old_taddr,$ptr_map) = @_;
48 0           return $ptr_map->{ HR_THR_LINFO_PREFIX . $old_taddr };
49             }
50              
51             push @EXPORT, qw(hr_thrutil_store_linfo hr_thrutil_get_linfo);
52              
53             sub hr_thrutil_store_kinfo {
54 0     0 0   my ($prefix,$k,$ptr_map,$info) = @_;
55 0           $ptr_map->{$prefix . $k} = $info;
56             }
57              
58             sub hr_thrutil_get_kinfo {
59 0     0 0   my ($prefix,$k,$ptr_map) = @_;
60 0           $ptr_map->{$prefix.$k};
61             }
62              
63             push @EXPORT, qw(hr_thrutil_store_kinfo hr_thrutil_get_kinfo);
64