| blib/lib/Data/TxnBuffer/Base.pm | |||
|---|---|---|---|
| Criterion | Covered | Total | % | 
| statement | 19 | 19 | 100.0 | 
| branch | 2 | 2 | 100.0 | 
| condition | n/a | ||
| subroutine | 6 | 6 | 100.0 | 
| pod | 1 | 1 | 100.0 | 
| total | 28 | 28 | 100.0 | 
| line | stmt | bran | cond | sub | pod | time | code | 
|---|---|---|---|---|---|---|---|
| 1 | package Data::TxnBuffer::Base; | ||||||
| 2 | 6 | 6 | 2847 | use strict; | |||
| 6 | 10 | ||||||
| 6 | 159 | ||||||
| 3 | 6 | 6 | 29 | use warnings; | |||
| 6 | 10 | ||||||
| 6 | 128 | ||||||
| 4 | 6 | 6 | 9437 | use Try::Tiny; | |||
| 6 | 9782 | ||||||
| 6 | 924 | ||||||
| 5 | |||||||
| 6 | sub txn_read { | ||||||
| 7 | 6 | 6 | 1 | 779 | my ($self, $code) = @_; | ||
| 8 | |||||||
| 9 | 6 | 8 | my ($ret, $err); | ||||
| 10 | try { | ||||||
| 11 | 6 | 6 | 194 | $code->($self); | |||
| 12 | 2 | 17 | $ret = $self->spin; | ||||
| 13 | } catch { | ||||||
| 14 | 4 | 4 | 151 | $err = $_; | |||
| 15 | 4 | 28 | $self->reset; | ||||
| 16 | 6 | 41 | }; | ||||
| 17 | |||||||
| 18 | 6 | 100 | 63 | if ($err) { | |||
| 19 | # rethrow | ||||||
| 20 | 4 | 17 | die $err; | ||||
| 21 | } | ||||||
| 22 | |||||||
| 23 | 2 | 6 | $ret; | ||||
| 24 | } | ||||||
| 25 | |||||||
| 26 | 1; | ||||||
| 27 | |||||||
| 28 | __END__ |