Commit | Line | Data |
0ade1984 |
1 | |
2 | use IPC::SysV qw( |
3 | SETALL |
4 | IPC_PRIVATE |
5 | IPC_CREAT |
6 | IPC_RMID |
7 | IPC_NOWAIT |
8 | IPC_STAT |
9 | S_IRWXU |
10 | S_IRWXG |
11 | S_IRWXO |
12 | ); |
13 | use IPC::Semaphore; |
14 | |
15 | print "1..10\n"; |
16 | |
17 | $sem = new IPC::Semaphore(IPC_PRIVATE, 10, S_IRWXU | S_IRWXG | S_IRWXO | IPC_CREAT) |
18 | || die "semget: ",$!+0," $!\n"; |
19 | |
20 | print "ok 1\n"; |
21 | |
22 | my $st = $sem->stat || print "not "; |
23 | print "ok 2\n"; |
24 | |
25 | $sem->setall( (0) x 10) || print "not "; |
26 | print "ok 3\n"; |
27 | |
28 | my @sem = $sem->getall; |
29 | print "not " unless join("",@sem) eq "0000000000"; |
30 | print "ok 4\n"; |
31 | |
32 | $sem[2] = 1; |
33 | $sem->setall( @sem ) || print "not "; |
34 | print "ok 5\n"; |
35 | |
36 | @sem = $sem->getall; |
37 | print "not " unless join("",@sem) eq "0010000000"; |
38 | print "ok 6\n"; |
39 | |
40 | my $ncnt = $sem->getncnt(0); |
41 | print "not " if $sem->getncnt(0) || !defined($ncnt); |
42 | print "ok 7\n"; |
43 | |
44 | $sem->op(2,-1,IPC_NOWAIT) || print "not "; |
45 | print "ok 8\n"; |
46 | |
47 | print "not " if $sem->getncnt(0); |
48 | print "ok 9\n"; |
49 | |
50 | $sem->remove || print "not "; |
51 | print "ok 10\n"; |