… | |
… | |
155 | # call all destruction callbacks |
155 | # call all destruction callbacks |
156 | $_->(@{$self->{status}}) |
156 | $_->(@{$self->{status}}) |
157 | for @{(delete $self->{destroy_cb}) || []}; |
157 | for @{(delete $self->{destroy_cb}) || []}; |
158 | } |
158 | } |
159 | |
159 | |
160 | sub _do_trace_sub { |
|
|
161 | &{$current->{_trace_sub_cb}} |
|
|
162 | } |
|
|
163 | |
|
|
164 | sub _do_trace_line { |
|
|
165 | &{$current->{_trace_line_cb}} |
|
|
166 | } |
|
|
167 | |
|
|
168 | # this coroutine is necessary because a coroutine |
160 | # this coroutine is necessary because a coroutine |
169 | # cannot destroy itself. |
161 | # cannot destroy itself. |
170 | my @destroy; |
162 | my @destroy; |
171 | my $manager; |
163 | my $manager; |
172 | |
164 | |