Browse Source

+ initial revision

florian 27 years ago
parent
commit
ace5fc1f57
3 changed files with 139 additions and 0 deletions
  1. 35 0
      fcl/inc/syncobjs.inc
  2. 39 0
      fcl/inc/syncobjsh.inc
  3. 65 0
      fcl/win32/syncobjs.pp

+ 35 - 0
fcl/inc/syncobjs.inc

@@ -0,0 +1,35 @@
+{
+    $Id$
+    This file is part of the Free Component Library (FCL)
+    Copyright (c) 1998 by Florian Klaempfl
+    member of the Free Pascal development team
+
+    See the file COPYING.FPC, included in this distribution,
+    for details about the copyright.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+
+procedure TCriticalSection.Enter;
+
+  begin
+     Acquire;
+  end;
+
+procedure TCriticalSection.Leave;
+
+  begin
+     Release;
+  end;
+
+end.
+
+{
+  $Log$
+  Revision 1.1  1998-09-29 11:14:25  florian
+    + initial revision
+
+}

+ 39 - 0
fcl/inc/syncobjsh.inc

@@ -0,0 +1,39 @@
+{
+    $Id$
+    This file is part of the Free Component Library (FCL)
+    Copyright (c) 1998 by Florian Klaempfl
+    member of the Free Pascal development team
+
+    See the file COPYING.FPC, included in this distribution,
+    for details about the copyright.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+
+type
+   TSyncroObject = class(TObject)
+      procedure Acquire;virtual;abstract;
+      procedure Release;virtual;abstract;
+   end;
+
+   TCriticalSection = class(TSyncroObject)
+   private
+      CriticalSection : TRTLCriticalSection;
+   public
+      procedure Acquire;override;
+      procedure Release;override;
+      procedure Enter;
+      procedure Leave;
+      constructor Create;
+      destructor Destroy;
+   end;
+
+{
+  $Log$
+  Revision 1.1  1998-09-29 11:14:25  florian
+    + initial revision
+
+}

+ 65 - 0
fcl/win32/syncobjs.pp

@@ -0,0 +1,65 @@
+{
+    $Id$
+    This file is part of the Free Component Library (FCL)
+    Copyright (c) 1998 by Florian Klaempfl
+    member of the Free Pascal development team
+
+    See the file COPYING.FPC, included in this distribution,
+    for details about the copyright.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+
+unit syncobjs;
+
+  interface
+
+    uses
+       sysutils;
+
+    {$syncobjsh.inc}
+
+  implementation
+
+     uses
+        windows;
+
+    {$syncobjs.inc}
+
+    procedure TCriticalSection.Acquire;
+
+      begin
+         EnterCriticalSection(CriticalSection);
+      end;
+
+    procedure TCriticalSection.Release;
+
+      begin
+         LeaveCriticalSection(CriticalSection);
+      end;
+
+    constructor TCriticalSection.Create;
+
+      begin
+         inherited Create;
+         InitializeCriticalSection(CriticalSection);
+      end;
+
+    destructor TCriticalSection.Destroy;
+
+      begin
+         DeleteCriticalSection(CriticalSection);
+         inherited Destroy;
+      end;
+
+end.
+
+{
+  $Log$
+  Revision 1.1  1998-09-29 11:15:24  florian
+    + initial revision
+
+}