home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / perl560.zip / ext / IPC / SysV / t / sem.t < prev   
Text File  |  1999-07-20  |  905b  |  52 lines

  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";
  52.