Changeset 15788 for lang/perl/Data-Valve
- Timestamp:
- 07/14/08 15:49:12 (5 years ago)
- Location:
- lang/perl/Data-Valve/trunk/lib/Data/Valve/BucketStore
- Files:
-
- 3 modified
-
Memcached.pm (modified) (1 diff)
-
Object.pm (modified) (1 diff)
-
WithKeyedMutex.pm (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
lang/perl/Data-Valve/trunk/lib/Data/Valve/BucketStore/Memcached.pm
r15787 r15788 32 32 coerce => 1, 33 33 required => 1, 34 default => sub { 35 Class::MOP::load_class('Cache::Memcached'); 36 Cache::Memcached->new({ 37 servers => [ '127.0.0.1:11211' ] 38 }); 39 } 34 40 ); 35 41 -
lang/perl/Data-Valve/trunk/lib/Data/Valve/BucketStore/Object.pm
r15787 r15788 29 29 my $key = $args{key}; 30 30 31 my $mutex = $self->mutex;32 33 31 my $rv; 34 32 my $done = 0; 35 33 my $store = $self->store; 36 34 while ( ! $done) { 37 my $lock = $ mutex ? $mutex->lock($key, 1) : 1;35 my $lock = $self->lock($key); 38 36 next unless $lock; 39 37 -
lang/perl/Data-Valve/trunk/lib/Data/Valve/BucketStore/WithKeyedMutex.pm
r15787 r15788 28 28 my $self = shift; 29 29 30 31 30 # if no keyedmutex was provided explicitly, we attempt to create one 32 31 # however, if the creation of this object fails, well, we can go … … 42 41 } 43 42 43 sub lock { 44 my ($self, $key) = @_; 45 46 my $mutex = $self->mutex; 47 return 1 unless $mutex; 48 my $rv = eval { $mutex->lock($key, 1) }; 49 # if in case an error has been reported, we should ditch the mutex, 50 # cause it will keep giving errors (or worse yet, crash) 51 if ($@) { 52 $self->mutex(undef); 53 } 54 return $rv; 55 } 56 44 57 1;
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)