87 lines
2.0 KiB
Plaintext
87 lines
2.0 KiB
Plaintext
{$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.
|
|
|