Как я могу проверить, удерживается ли блокировка кем-то еще при использовании IPC :: Shareable в perl.
У меня есть следующий код:
my $resource = 0;
my $resource_handle = tie $resource, 'IPC::Shareable', undef , { destroy => 1 };
my $child = fork;
unless ($child) {
$resource_handle -> shlock();
sleep 10;
$resource_handle -> shunlock();
exit(0);
}
sleep 2;
if ($resource_handle -> shlock(LOCK_EX)) {
print "Got lock in parent\n";
$resource_handle -> shunlock();
} else {
print "The shared resource is locked\n";
}
Это напечатает «Получил блокировку в родительском» через 10 секунд, пока я хочу, чтобы он напечатал «Общий ресурс заблокирован».