summaryrefslogtreecommitdiff
path: root/lib/AnyEvent/Riak/Role/CVCB.pm
blob: 73812c219784886d5b97046169b865bc8549f055 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package AnyEvent::Riak::Role::CVCB;

# ABSTRACT: return a default condvar and callback if none defined

use Moose::Role;

sub _cvcb {
    my ($self, $options) = @_;

    my ($cv, $cb) = (AnyEvent->condvar, sub { return @_ });
    if ($options && @$options) {
        $cv = pop @$options if UNIVERSAL::isa($options->[-1], 'AnyEvent::CondVar');
        $cb = pop @$options if ref $options->[-1] eq 'CODE';
    }
    ($cv, $cb);
}

1;