view release on metacpan or search on metacpan
lib/Ark/Response.pm view on Meta::CPAN
my $r = sub {
my $respond = shift;
$self->deferred_response($respond);
$self->deferred->($respond);
};
Scalar::Util::weaken($self);
return $r;
}
}
else { # streaming
my $response = [
view all matches for this distribution
view release on metacpan or search on metacpan
sv_reftype|||
sv_release_COW|||
sv_replace|||
sv_report_used|||
sv_reset|||
sv_rvweaken||5.006000|
sv_setiv_mg|5.004050||p
sv_setiv|||
sv_setnv_mg|5.006000||p
sv_setnv|||
sv_setpv_mg|5.004050||p
view all matches for this distribution
view release on metacpan or search on metacpan
lib/ArrayData/Lingua/Word/EN/Enable.pm view on Meta::CPAN
wayworn
wazoo
wazoos
we
weak
weaken
weakened
weakener
weakeners
weakening
weakens
weaker
weakest
weakfish
weakfishes
weakhearted
view all matches for this distribution
view release on metacpan or search on metacpan
lib/ArrayData/Word/EN/Enable.pm view on Meta::CPAN
wayworn
wazoo
wazoos
we
weak
weaken
weakened
weakener
weakeners
weakening
weakens
weaker
weakest
weakfish
weakfishes
weakhearted
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Ask/Caroline.pm view on Meta::CPAN
has caroline => (
is => 'lazy',
default => sub {
my $self = shift;
Scalar::Util::weaken( my $weak = $self );
'Caroline'->new(
completion_callback => sub {
return unless $weak && $weak->has_completion;
$weak->completion->( @_ );
},
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Aspect/Library/Listenable.pm view on Meta::CPAN
my $key = get_listener_key($event_name);
$listenable->{$key} = [] unless exists $listenable->{$key};
my $listeners = get_listeners($listenable, $event_name);
my $lastIndex = (push @$listeners, $listener) - 1;
if ( ref $listener eq 'ARRAY' ) { # type 3 listener
Scalar::Util::weaken( $listeners->[$lastIndex]->[1] );
} elsif ( ref $listener ne 'CODE' ) { # type 2 listener
Scalar::Util::weaken( $listeners->[$lastIndex] );
}
}
sub remove_listener ($$$) {
my ($listenable, $event_name, $listener) = @_;
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Assert/Refute/Build.pm view on Meta::CPAN
=cut
use Carp;
use Data::Dumper;
use Scalar::Util qw(weaken blessed set_prototype looks_like_number refaddr);
use parent qw(Exporter);
our @EXPORT = qw(build_refute current_contract to_scalar);
# NOTE HACK
# If we're being loaded after Test::More, we're *likely* inside a test script
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Asterisk/AMI.pm view on Meta::CPAN
use AnyEvent;
use AnyEvent::Handle;
use AnyEvent::Socket;
use Digest::MD5;
use Scalar::Util qw/weaken/;
use Carp qw/carp/;
#Duh
use version 0.77; our $VERSION = version->declare("v0.2.8");
lib/Asterisk/AMI.pm view on Meta::CPAN
#Initialize the seq number
$self->{idseq} = 1;
#Weaken reference for use in anonsub
weaken($self);
#Set keepalive
$self->{CONFIG}->{KEEPALIVE} = AE::timer($self->{CONFIG}->{KEEPALIVE}, $self->{CONFIG}->{KEEPALIVE}, sub { $self->_send_keepalive }) if ($self->{CONFIG}->{KEEPALIVE});
return 1;
lib/Asterisk/AMI.pm view on Meta::CPAN
} else {
warnings::warnif('Asterisk::AMI', "Unknown Protocol/AMI Version from $self->{CONFIG}->{PEERADDR}:$self->{CONFIG}->{PEERPORT}");
}
#Weak reference for us in anonysub
weaken($self);
$self->{handle}->push_read( 'Asterisk::AMI' => sub { $self->_handle_packet(@_); } );
return 1;
}
lib/Asterisk/AMI.pm view on Meta::CPAN
#Connects to the AMI Returns 1 on success, 0 on failure
sub _connect {
my ($self) = @_;
#Weaken ref for use in anonysub
weaken($self);
#Build a hash of our anyevent::handle options
my %hdl = ( connect => [$self->{CONFIG}->{PEERADDR} => $self->{CONFIG}->{PEERPORT}],
on_connect_err => sub { $self->_on_connect_err($_[1]); },
on_error => sub { $self->_on_error($_[2]) },
lib/Asterisk/AMI.pm view on Meta::CPAN
my $process = AE::cv;
$self->{CALLBACKS}->{$id}->{'cb'} = sub { $process->send($_[1]) };
$timeout = $self->{CONFIG}->{TIMEOUT} unless (defined $timeout);
#Should not need to weaken here because this is a blocking call Only outcomes can be error, timeout, or
#complete, all of which will finish the cb and clear the reference weaken($self)
if ($timeout) {
$self->{CALLBACKS}->{$id}->{'timeout'} = sub {
my $response = $self->{'RESPONSEBUFFER'}->{$id};
delete $self->{RESPONSEBUFFER}->{$id};
lib/Asterisk/AMI.pm view on Meta::CPAN
$self->{RESPONSEBUFFER}->{$id}->{'COMPLETED'} = 0;
$self->{RESPONSEBUFFER}->{$id}->{'GOOD'} = 0;
$self->{EXPECTED}->{$id} = 1;
#Weaken ref of use in anonsub
weaken($self);
#Set default timeout if needed
$timeout = $self->{CONFIG}->{TIMEOUT} unless (defined $timeout);
#Setup callback
lib/Asterisk/AMI.pm view on Meta::CPAN
#Non-blocking login
sub _login_noblock {
my ($self, $action, $challenge, $timeout) = @_;
#Weaken ref for use in anonsub
weaken($self);
#Callback for login action
my $login_cb = sub { $self->_logged_in($_[1]) };
#Do a md5 challenge
lib/Asterisk/AMI.pm view on Meta::CPAN
#Sends a keep alive
sub _send_keepalive {
my ($self) = @_;
#Weaken ref for use in anonysub
weaken($self);
my $cb = sub {
unless ($_[1]->{'GOOD'}) {
$self->_on_timeout("Asterisk failed to respond to keepalive - $self->{CONFIG}->{PEERADDR}:$self->{CONFIG}->{PEERPORT}");
};
};
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Astro/App/Satpass2/Format.pm view on Meta::CPAN
instance
load_package __parse_class_and_args
CODE_REF
@CARP_NOT
};
use Scalar::Util 1.26 qw{ weaken };
our $VERSION = '0.056';
use constant DEFAULT_LOCAL_COORD => 'azel_rng';
lib/Astro/App/Satpass2/Format.pm view on Meta::CPAN
# Astro::App::Satpass2::Macro->init(), ca. line 63.
defined $self->{parent}
or $self->wail( q{Attribute 'parent' is required} );
instance( $self->{parent}, 'Astro::App::Satpass2' )
or $self->wail( q{Attribute 'parent' must be an Astro::App::Satpass2} );
weaken( $self->{parent} );
exists $args{tz} or $args{tz} = $ENV{TZ};
$self->time_formatter( delete $args{time_formatter} );
$self->time_formatter()->warner( $self->warner() );
view all matches for this distribution
view release on metacpan or search on metacpan
sv_reftype|||
sv_release_COW|||
sv_replace|||
sv_report_used|||
sv_reset|||
sv_rvweaken||5.006000|
sv_setiv_mg|5.004050||p
sv_setiv|||
sv_setnv_mg|5.006000||p
sv_setnv|||
sv_setpv_mg|5.004050||p
view all matches for this distribution
view release on metacpan or search on metacpan
sv_reftype|||
sv_release_COW|||
sv_replace|||
sv_report_used|||
sv_reset|||
sv_rvweaken||5.006000|
sv_setiv_mg|5.004050||p
sv_setiv|||
sv_setnv_mg|5.006000||p
sv_setnv|||
sv_setpv_mg|5.004050||p
view all matches for this distribution
view release on metacpan or search on metacpan
sv_reftype|||
sv_release_COW|||
sv_replace|||
sv_report_used|||
sv_reset|||
sv_rvweaken||5.006000|
sv_setiv_mg|5.004050||p
sv_setiv|||
sv_setnv_mg|5.006000||p
sv_setnv|||
sv_setpv_mg|5.004050||p
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Astro/Coord/ECI/Moon.pm view on Meta::CPAN
id => 'Moon',
name => 'Moon',
diameter => 3476,
);
my $weaken = eval {
require Scalar::Util;
Scalar::Util->can('weaken');
};
our $Singleton = $weaken;
my %object; # By class
=item $moon = Astro::Coord::ECI::Moon->new ();
lib/Astro/Coord/ECI/Moon.pm view on Meta::CPAN
object; that is, only one object is instantiated and subsequent calls to
C<new()> just return that object. If higher-accuracy subclasses are ever
implemented, there will be one singleton for each class.
The singleton logic only works if L<Scalar::Util|Scalar::Util> exports
C<weaken()>. If it does not, the setting of
C<$Astro::Coord::ECI::Moon::Singleton> is silently ignored. The default
is true if L<Scalar::Util|Scalar::Util> can be loaded and exports
C<weaken()>, and false otherwise.
=cut
sub new {
my ($class, @args) = @_;
ref $class and $class = ref $class;
if ( $Singleton && $weaken && __classisa( $class, __PACKAGE__ ) ) {
my $self;
if ( $self = $object{$class} ) {
$self->set( @args ) if @args;
return $self;
} else {
$self = $object{$class} = $class->SUPER::new (%static, @args);
$weaken->( $object{$class} );
return $self;
}
} else {
return $class->SUPER::new (%static, @args);
}
lib/Astro/Coord/ECI/Moon.pm view on Meta::CPAN
=cut
sub clone {
my ( $self ) = @_;
$Singleton
and $weaken
and return $self;
return $self->SUPER::clone();
}
=item $elevation = $moon->correct_for_refraction( $elevation )
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Async/Blackboard.pm view on Meta::CPAN
$self->_found($key);
}
}
}
=item weaken KEY
Weaken the reference to KEY.
When the value placed on the blackboard should *not* have a strong reference
(for instance, a circular reference to the blackboard), use this method to
weaken the value reference to the value associated with the key.
=cut
sub weaken {
my ($self, $key) = @_;
Scalar::Util::weaken $self->{-objects}->{$key};
}
=item delete KEY [, KEY ...]
Given a list of keys, remove them from the blackboard. This method should be
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Async/Selector/Watcher.pm view on Meta::CPAN
package Async::Selector::Watcher;
use strict;
use warnings;
use Scalar::Util qw(weaken);
use Carp;
sub new {
my ($class, $selector, $conditions) = @_;
my $self = bless {
selector => $selector,
conditions => $conditions,
check_all => 0,
}, $class;
weaken($self->{selector});
return $self;
}
sub detach {
my ($self) = @_;
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Async/Stream.pm view on Meta::CPAN
use Async::Stream::Item;
use Async::Stream::Iterator;
use Carp qw(croak);
use Scalar::Util qw(weaken);
=head1 NAME
Async::Stream - it's convenient way to work with async data flow.
lib/Async/Stream.pm view on Meta::CPAN
$return_cb->();
}
}
});
};$next_cb->();
weaken $next_cb;
}
};
$self->_set_head($generator, prefetch => 0);
lib/Async/Stream.pm view on Meta::CPAN
$return_cb->();
}
}
});
};$next_cb->();
weaken $next_cb;
}
};
$self->_set_head($generator, prefetch => 0);
lib/Async/Stream.pm view on Meta::CPAN
} else {
$return_cb->(\@result);
}
});
};$next_cb->();
weaken $next_cb;
return $self;
}
=head2 each($action)
lib/Async/Stream.pm view on Meta::CPAN
$action->() for ($_[0]);
$each->()
}
});
}; $each->();
weaken $each;
return $self;
}
lib/Async/Stream.pm view on Meta::CPAN
$action->() for ($_[0]);
$each->()
}
});
}; $each->();
weaken $each;
return $self;
}
=head2 reduce($accumulator, $returing_cb)
lib/Async/Stream.pm view on Meta::CPAN
} else {
$return_cb->($prev);
}
});
};$reduce_cb->();
weaken $reduce_cb;
} else {
$return_cb->();
}
});
lib/Async/Stream.pm view on Meta::CPAN
return $next_cb->();
}
$return_cb->($result)
});
}; $next_cb->();
weaken $next_cb;
return $self;
}
=head2 any($predicat, $return_cb)
lib/Async/Stream.pm view on Meta::CPAN
} else {
$return_cb->()
}
});
}; $next_cb->();
weaken $next_cb;
return $self;
}
view all matches for this distribution
view release on metacpan or search on metacpan
src/ppport.h view on Meta::CPAN
sv_ref||5.015004|
sv_replace|||
sv_report_used|||
sv_resetpvn|||
sv_reset|||
sv_rvweaken||5.006000|
sv_sethek|||
sv_setiv_mg|5.004050||p
sv_setiv|||
sv_setnv_mg|5.006000||p
sv_setnv|||
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Async/Util.pm view on Meta::CPAN
use warnings;
use v5.10;
no warnings 'recursion';
use Carp;
use Exporter;
use Scalar::Util qw(weaken);
our @ISA = qw(Exporter);
our @EXPORT_OK = qw(amap azipmap achain);
my $DEFAULT_AT_A_TIME = 100;
lib/Async/Util.pm view on Meta::CPAN
$after_work->($res, $err, $i);
};
$action->($input, $after_work_wrapper);
weaken $after_work_wrapper;
}
};
$after_work = sub {
lib/Async/Util.pm view on Meta::CPAN
$run->();
};
$run->();
weaken $run;
return;
}
sub _amap_ignore {
lib/Async/Util.pm view on Meta::CPAN
$run->();
};
$run->();
weaken $after_work;
return;
}
sub azipmap {
lib/Async/Util.pm view on Meta::CPAN
$after_work->($_[0], $_[1], $i);
};
$action->($input, $after_work_wrapper);
weaken $after_work_wrapper;
}
};
$after_work = sub {
my ($output, $err, $index) = @_;
lib/Async/Util.pm view on Meta::CPAN
$run->();
};
$run->();
weaken $run;
return;
}
sub achain {
lib/Async/Util.pm view on Meta::CPAN
$next_cb->($result, $run);
};
$run->($input);
weaken $run;
return;
}
1;
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Spiffy.pm view on Meta::CPAN
" return \$_[0]->{%s} = do { my \$self = \$_[0]; %s }\n" .
" unless \$#_ > 0 or defined \$_[0]->{%s};\n",
weak_init =>
" return do {\n" .
" \$_[0]->{%s} = do { my \$self = \$_[0]; %s };\n" .
" Scalar::Util::weaken(\$_[0]->{%s}) if ref \$_[0]->{%s};\n" .
" \$_[0]->{%s};\n" .
" } unless \$#_ > 0 or defined \$_[0]->{%s};\n",
return_if_get =>
" return \$_[0]->{%s} unless \$#_ > 0;\n",
set =>
" \$_[0]->{%s} = \$_[1];\n",
weaken =>
" Scalar::Util::weaken(\$_[0]->{%s}) if ref \$_[0]->{%s};\n",
sub_end =>
" return \$_[0]->{%s};\n}\n",
);
sub field {
inc/Spiffy.pm view on Meta::CPAN
local *paired_arguments = sub { (qw(-package -init)) };
Spiffy->parse_arguments(@_);
};
my ($field, $default) = @values;
$package = $args->{-package} if defined $args->{-package};
die "Cannot have a default for a weakened field ($field)"
if defined $default && $args->{-weak};
return if defined &{"${package}::$field"};
require Scalar::Util if $args->{-weak};
my $default_string =
( ref($default) eq 'ARRAY' and not @$default )
inc/Spiffy.pm view on Meta::CPAN
}
$code .= sprintf $code{set_default}, $field, $default_string, $field
if defined $default;
$code .= sprintf $code{return_if_get}, $field;
$code .= sprintf $code{set}, $field;
$code .= sprintf $code{weaken}, $field, $field
if $args->{-weak};
$code .= sprintf $code{sub_end}, $field;
my $sub = eval $code;
die $@ if $@;
view all matches for this distribution
view release on metacpan or search on metacpan
t/lib/Test/More.pm view on Meta::CPAN
use Test::More tests => $Num_Tests;
There are rare cases when you will not know beforehand how many tests
your script is going to run. In this case, you can declare that you
have no plan. (Try to avoid using this as it weakens your test.)
use Test::More qw(no_plan);
In some cases, you'll want to completely skip an entire testing script.
view all matches for this distribution
view release on metacpan or search on metacpan
sv_reftype|||
sv_release_COW|||
sv_replace|||
sv_report_used|||
sv_reset|||
sv_rvweaken||5.006000|
sv_setiv_mg|5.004050||p
sv_setiv|||
sv_setnv_mg|5.006000||p
sv_setnv|||
sv_setpv_mg|5.004050||p
view all matches for this distribution
view release on metacpan or search on metacpan
sv_release_COW|||
sv_replace|||
sv_report_used|||
sv_resetpvn|||
sv_reset|||
sv_rvweaken||5.006000|
sv_sethek|||
sv_setiv_mg|5.004050||p
sv_setiv|||
sv_setnv_mg|5.006000||p
sv_setnv|||
view all matches for this distribution
view release on metacpan or search on metacpan
sv_reftype|||
sv_release_COW|||
sv_replace|||
sv_report_used|||
sv_reset|||
sv_rvweaken||5.006000|
sv_setiv_mg|5.004050||p
sv_setiv|||
sv_setnv_mg|5.006000||p
sv_setnv|||
sv_setpv_mg|5.004050||p
view all matches for this distribution
view release on metacpan or search on metacpan
Perl/Perl.pm view on Meta::CPAN
use Audio::LADSPA;
use Audio::LADSPA::Library;
our @ISA = qw(Audio::LADSPA::Plugin);
our $VERSION = "0.021";
use Carp;
use Scalar::Util qw(weaken);
__PACKAGE__->description(
name => 'Audio::LADSPA::Plugin::Perl',
label => 'perl',
maker => 'Joost Diepenmaat',
Perl/Perl.pm view on Meta::CPAN
}
sub set_monitor {
my ($self,$monitor) = @_;
$self->{monitor} = $monitor;
weaken($self->{monitor}) if defined $self->{monitor};
}
sub monitor {
my ($self) = @_;
return $self->{monitor};
view all matches for this distribution
view release on metacpan or search on metacpan
sv_release_COW|||
sv_replace|||
sv_report_used|||
sv_resetpvn|||
sv_reset|||
sv_rvweaken||5.006000|
sv_sethek|||
sv_setiv_mg|5.004050||p
sv_setiv|||
sv_setnv_mg|5.006000||p
sv_setnv|||
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Audio/M4P/Atom.pm view on Meta::CPAN
use strict;
use warnings;
use Carp;
our $VERSION = '0.54';
use Scalar::Util 'weaken';
use Tree::Simple 'use_weak_refs';
use Tree::Simple::Visitor;
use Tree::Simple::View::HTML;
lib/Audio/M4P/Atom.pm view on Meta::CPAN
my $self = \%args;
bless( $self, $class );
$self->{node} = Tree::Simple->new($self);
if( ref $self->{parent} ) {
$self->{parent}->addChild( $self->{node} );
weaken $self->{node};
weaken $self->{parent};
}
else {
$self->{parent} = 0;
}
if( ref $self->{rbuf} ) {
weaken $self->{rbuf};
$self->read_buffer( $self->{read_buffer_position} )
if exists $self->{read_buffer_position};
}
return $self;
}
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Audio/MPD/Collection.pm view on Meta::CPAN
#
# my $collection = Audio::MPD::Collection->new( _mpd => $mpd );
#
# This will create the object, holding a back-reference to the Audio::MPD
# object itself (for communication purposes). But in order to play safe and
# to free the memory in time, this reference is weakened.
#
# Note that you're not supposed to call this constructor yourself, an
# Audio::MPD::Collection is automatically created for you during the creation
# of an Audio::MPD object.
#
view all matches for this distribution
view release on metacpan or search on metacpan
sv_release_COW|||
sv_replace|||
sv_report_used|||
sv_resetpvn|||
sv_reset|||
sv_rvweaken||5.006000|
sv_sethek|||
sv_setiv_mg|5.004050||p
sv_setiv|||
sv_setnv_mg|5.006000||p
sv_setnv|||
view all matches for this distribution
view release on metacpan or search on metacpan
sv_release_COW|||
sv_release_IVX|||
sv_replace|||
sv_report_used|||
sv_reset|||
sv_rvweaken||5.006000|
sv_setiv_mg|5.006000||p
sv_setiv|||
sv_setnv_mg|5.006000||p
sv_setnv|||
sv_setpv_mg|5.006000||p
view all matches for this distribution
view release on metacpan or search on metacpan
include/ppport.h view on Meta::CPAN
sv_release_COW|||
sv_release_IVX|||
sv_replace|||
sv_report_used|||
sv_reset|||
sv_rvweaken||5.006000|
sv_setiv_mg|5.006000||p
sv_setiv|||
sv_setnv_mg|5.006000||p
sv_setnv|||
sv_setpv_mg|5.006000||p
view all matches for this distribution