mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-10-23 08:34:34 +02:00
* naieve implementation of TMREWS
git-svn-id: trunk@1030 -
This commit is contained in:
parent
7acb5e8089
commit
e6d48d0c6a
@ -30,3 +30,35 @@ procedure TCriticalSection.Leave;
|
||||
begin
|
||||
Release;
|
||||
end;
|
||||
|
||||
constructor TMultiReadExclusiveWriteSynchronizer.Create;
|
||||
|
||||
begin
|
||||
Crit:=tcriticalsection.create;
|
||||
end;
|
||||
|
||||
destructor TMultiReadExclusiveWriteSynchronizer.Destroy;
|
||||
begin
|
||||
Crit.free;
|
||||
end;
|
||||
|
||||
procedure TMultiReadExclusiveWriteSynchronizer.Beginwrite;
|
||||
begin
|
||||
Crit.acquire;
|
||||
end;
|
||||
|
||||
procedure TMultiReadExclusiveWriteSynchronizer.Endwrite;
|
||||
begin
|
||||
Crit.release;
|
||||
end;
|
||||
|
||||
procedure TMultiReadExclusiveWriteSynchronizer.Beginread;
|
||||
begin
|
||||
Crit.acquire;
|
||||
end;
|
||||
|
||||
procedure TMultiReadExclusiveWriteSynchronizer.Endread;
|
||||
begin
|
||||
Crit.acquire;
|
||||
end;
|
||||
|
||||
|
@ -62,3 +62,15 @@ type
|
||||
TSimpleEvent = class(TEventObject)
|
||||
constructor Create;
|
||||
end;
|
||||
|
||||
TMultiReadExclusiveWriteSynchronizer = class
|
||||
private
|
||||
crit:TCriticalsection;
|
||||
public
|
||||
constructor Create; virtual;
|
||||
destructor Destroy; override;
|
||||
procedure Beginwrite;
|
||||
procedure Endwrite;
|
||||
procedure Beginread;
|
||||
procedure Endread;
|
||||
end;
|
||||
|
Loading…
Reference in New Issue
Block a user