IPC-ConcurrencyLimit-Lock-Redis

 view release on metacpan or  search on metacpan

t/02basic.t  view on Meta::CPAN

  ok(!$limit->is_locked, 'We do not have a lock');
  is($limit->lock_id, undef, 'No lock');
  
  $id = $limit->get_lock;
  is($id, 1, 'New lock returns same id');

  my $limit2 = IPC::ConcurrencyLimit->new(%args);
  my $id2 = $limit2->get_lock();
  is($id2, undef, 'Cannot get second lock');

  ok($limit->heartbeat, 'Lock alive');

  SCOPE: {
    my $_lock = $limit->{lock_obj}; # breaking encapsulation
    is($conn->hget($_lock->key_name, $_lock->id),
       $_lock->uuid . "-" . $_lock->proc_info,
       "UUID/procinfo ok");
  }

  is($limit->release_lock(), 1, 'Lock released');
  ok(!$limit->heartbeat, 'Lock not alive');

  $id2 = $limit2->get_lock();
  is($id2, 1, 'Got other lock after first was released');
}

SCOPE: {
  my $limit = IPC::ConcurrencyLimit->new(%args, max_procs => 2);
  isa_ok($limit, 'IPC::ConcurrencyLimit');

  my $id = $limit->get_lock;



( run in 1.106 second using v1.01-cache-2.11-cpan-39bf76dae61 )