NAME

MooseX::KeyedMutex - Role To Add KeyedMutex

SYNOPSIS

package MyClass;
use Moose;

with 'MooseX::KeyedMutex';

no Moose;

$object = MyClass->new( mutex => $mutex );
$object = MyClass->new(
  mutex => {
    args => {
      sock => '....',
    }
  }
);

if (my $lock = $object->lock($name)) {
  ....
}

DESCRIPTION

MooseX::KeyedMutex adds instant distributed locking to you objects via KeyedMutex.

METHODS

lock($key)

Attempts to acquire a lock by the name $key. On success, returns a KeyedMutex::Lock object. On failure, returns undef.

In case the object has *NOT* been initialized with a proper keyedmutex, lock() automatically goes into degraded mode and will immediately return success. In such cases, '0E0' will be returned.

mutex_required

If set to true, MooseX::KeyedMutex will croak whenever an attempt to lock is issued but no mutex is available

AUTHOR

Daisuke Maki <daisuke@endeworks.jp>

LICENSE

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

See http://www.perl.com/perl/misc/Artistic.html