UniEvent-HTTP-Manager

 view release on metacpan or  search on metacpan

t/lib/IPCToken.pm  view on Meta::CPAN

package IPCToken;
use 5.016;
use warnings;
use IPC::SysV qw(IPC_PRIVATE S_IRUSR S_IWUSR IPC_CREAT);
use IPC::Semaphore;

sub new {
    my ($class, $initial) = @_;
    my $sem = IPC::Semaphore->new(IPC_PRIVATE, 1, S_IRUSR | S_IWUSR | IPC_CREAT);

    my $obj = bless {sem => $sem} => $class;
    $obj->inc($initial) if $initial;
    return $obj;
}

sub inc {
    my ($self, $val) = @_;
    $val //= 1;
    $self->{sem}->op(0, $val, 0);
}

 view all matches for this distribution
 view release on metacpan -  search on metacpan

( run in 3.424 seconds using v1.00-cache-2.02-grep-82fe00e-cpan-cec75d87357c )