package TEAL::Semaphore; use strict; use warnings; require IPC::SysV; sub new { my $class = shift; my $self = {}; my $key = IPC::SysV::ftok("/var/log/teal", 0x646c6100); $self->{ID} = semget($key, 1, 0); bless $self, $class; return $self; } sub post { my $self = shift; my $op = pack("s!3", 0, 1, 0); semop $self->{ID}, $op || die "failed to post" } 1;