mirror of
https://github.com/cheat-engine/cheat-engine
synced 2026-08-15 02:26:08 -04:00
50 lines
709 B
ObjectPascal
50 lines
709 B
ObjectPascal
unit SyncObjs2;
|
|
|
|
interface
|
|
|
|
uses windows;
|
|
|
|
type TSemaphore=class
|
|
private
|
|
handle: THandle;
|
|
public
|
|
procedure Aquire;
|
|
procedure Release;
|
|
constructor create(maxcount: integer);
|
|
destructor destroy; override;
|
|
end;
|
|
|
|
implementation
|
|
|
|
|
|
constructor TSemaphore.create(maxcount:integer);
|
|
begin
|
|
handle:=CreateSemaphore(nil,maxcount,maxcount,'');
|
|
end;
|
|
|
|
destructor TSemaphore.destroy;
|
|
begin
|
|
closehandle(handle);
|
|
inherited destroy;
|
|
end;
|
|
|
|
procedure TSemaphore.Aquire;
|
|
begin
|
|
waitforsingleobject(handle,infinite);
|
|
end;
|
|
|
|
procedure TSemaphore.Release;
|
|
var previouscount: dword;
|
|
begin
|
|
releasesemaphore(handle,1,@previouscount);
|
|
end;
|
|
|
|
end.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|