home *** CD-ROM | disk | FTP | other *** search
- {$X+,B-,V-}
- Program tstsema2;
-
- { Example for the nwSema unit / NwTP 0.6 API. (c) 1993,1995, R.Spronk }
-
- uses nwMisc,nwConn,nwSema;
-
-
- Var ConnNbr:Byte;
- seqNbr:Word;
- NbrOfSema:Byte;
- SemaInfo:TconnSema;
-
- SemValue:Integer;
- info:TsemaInfoList;
-
- t:byte;
- s:string;
-
- handle4,handle5,
- handle6,handle7:LongInt;
- openCount:word;
- begin
-
- connNbr:=2;seqNbr:=0;
-
- OpenSemapHore('SEMA4',4,handle4,openCount);
- OpenSemaphore('SEMAPHORE5',5,handle5,OpenCount);
- OpenSemapHore('SEM6',6,handle6,OpenCount);
- OpenSemapHore('SEMAP7',7,handle7,OpenCount);
-
- writeln('Semaphores have been opened..');
- writeln;
- writeln('<RETURN> to continue..');
- readln(s);
-
- GetConnectionNumber(connNbr); { my connection number }
-
- seqNbr:=1;
- REPEAT
- IF NOT GetConnectionsSemaphores(ConnNbr,seqNbr,NbrOfSema,SemaInfo)
- then begin
- writeln('GetConnectionsSemaphores returned error #', nwSema.result);
- seqNbr:=0;
- end
- else begin
- writeln;
- writeln('NbrOfSema Left to Scan: ',NbrOfSema);
- writeln('Next seq Nbr : ',seqNbr);
-
- with SemaInfo
- do begin
- writeln('Sema Name:',Name);
- writeln('Opencount:',OpenCount);
- writeln('Value :',Value);
- writeln('TaskNbr :',taskNbr);
- end;
- end;
-
- UNTIL seqNbr=0;
-
-
- seqNbr:=1;
- REPEAT
- IF GetSemaphoreInformation('SEMA4',seqNbr,
- OpenCount,SemValue,NbrOfSema,info)
- then begin
- writeln;
- writeln('Test of GetSemaphoreInformation...');
- writeln('Connections using semaphore:',Opencount);
- writeln('Semaphore value:',semvalue);
-
- If NbrOfSema>100
- then NbrOfSema:=100;
- for t:=1 to NbrOfSema
- do writeln('Record #:',t,' Connection: ',info[t].ConnNbr,' Task: ',info[t].taskNbr);
- end
- else writeln('GetSemaphoreInformation returned error #', nwSema.result);
- UNTIL seqNbr=0;
-
- CloseSemaphore(handle4);
- CloseSemaphore(handle5);
- CloseSemaPhore(handle6);
- CloseSemaphore(handle7);
- end.
-
-