Browse Source

* fixed for 1.0.x

peter 22 years ago
parent
commit
94a60f4975
1 changed files with 34 additions and 20 deletions
  1. 34 20
      packages/base/libasync/unix/libasync.pp

+ 34 - 20
packages/base/libasync/unix/libasync.pp

@@ -25,11 +25,11 @@ type
 
   TAsyncData = record
     IsRunning, DoBreak: Boolean;
-    HasCallbacks: Boolean;	// True as long as callbacks are set
+    HasCallbacks: Boolean;      // True as long as callbacks are set
     FirstTimer: Pointer;
     FirstIOCallback: Pointer;
-    CurIOCallback: Pointer;	// current callback being processed within 'run'
-    NextIOCallback: Pointer;	// next callback to get processed within 'run'
+    CurIOCallback: Pointer;     // current callback being processed within 'run'
+    NextIOCallback: Pointer;    // next callback to get processed within 'run'
     FDData: Pointer;
     HighestHandle: LongInt;
   end;
@@ -108,24 +108,34 @@ begin
       begin
         CurIOCallback := PIOCallbackData(Handle^.Data.CurIOCallback);
         Handle^.Data.NextIOCallback := CurIOCallback^.Next;
-        if ({$ifdef VER1_0}FD_IsSet{$else}fpFD_ISSET{$endif}(CurIOCallback^.IOHandle,CurReadFDSet)>=0) and
-	  ({$ifdef VER1_0}FD_IsSet{$else}fpFD_ISSET{$endif}(CurIOCallback^.IOHandle, PFDSet(Handle^.Data.FDData)[0])>=0) and
-	  Assigned(CurIOCallback^.ReadCallback) then
+        {$ifdef VER1_0}
+        if (FD_IsSet(CurIOCallback^.IOHandle,CurReadFDSet)) and
+           (FD_IsSet(CurIOCallback^.IOHandle, PFDSet(Handle^.Data.FDData)[0])) and
+        {$else}
+        if (fpFD_ISSET(CurIOCallback^.IOHandle,CurReadFDSet)>=0) and
+           (fpFD_ISSET(CurIOCallback^.IOHandle, PFDSet(Handle^.Data.FDData)[0])>=0) and
+        {$endif}
+          Assigned(CurIOCallback^.ReadCallback) then
         begin
-	  CurIOCallback^.ReadCallback(CurIOCallback^.ReadUserData);
-	  if Handle^.Data.DoBreak then
-	    break;
+          CurIOCallback^.ReadCallback(CurIOCallback^.ReadUserData);
+          if Handle^.Data.DoBreak then
+            break;
         end;
 
         CurIOCallback := PIOCallbackData(Handle^.Data.CurIOCallback);
         if Assigned(CurIOCallback) and
-	  ({$ifdef VER1_0}FD_IsSet{$else}fpFD_ISSET{$endif}(CurIOCallback^.IOHandle, CurWriteFDSet)>=0) and
-	  ({$ifdef VER1_0}FD_IsSet{$else}fpFD_ISSET{$endif}(CurIOCallback^.IOHandle, PFDSet(Handle^.Data.FDData)[1])>=0) and
-	  Assigned(CurIOCallback^.WriteCallback) then
+	{$ifdef VER1_0}
+           (FD_IsSet(CurIOCallback^.IOHandle, CurWriteFDSet)) and
+           (FD_IsSet(CurIOCallback^.IOHandle, PFDSet(Handle^.Data.FDData)[1])) and
+	{$else}  
+           (fpFD_ISSET(CurIOCallback^.IOHandle, CurWriteFDSet)>=0) and
+           (fpFD_ISSET(CurIOCallback^.IOHandle, PFDSet(Handle^.Data.FDData)[1])>=0) and
+	{$endif}  
+          Assigned(CurIOCallback^.WriteCallback) then
         begin
-	  CurIOCallback^.WriteCallback(CurIOCallback^.WriteUserData);
-	  if Handle^.Data.DoBreak then
-	    break;
+          CurIOCallback^.WriteCallback(CurIOCallback^.WriteUserData);
+          if Handle^.Data.DoBreak then
+            break;
         end;
 
         Handle^.Data.CurIOCallback := Handle^.Data.NextIOCallback;
@@ -173,9 +183,9 @@ begin
     Open_RdWr:
       begin
         if cbRead in CallbackTypes then
-	  {$ifdef VER1_0}FD_Set{$else}fpFD_SET{$endif}(Data^.IOHandle, PFDSet(Handle^.Data.FDData)[0]);
-	if cbWrite in CallbackTypes then
-	  {$ifdef VER1_0}FD_Set{$else}fpFD_SET{$endif}(Data^.IOHandle, PFDSet(Handle^.Data.FDData)[1]);
+          {$ifdef VER1_0}FD_Set{$else}fpFD_SET{$endif}(Data^.IOHandle, PFDSet(Handle^.Data.FDData)[0]);
+        if cbWrite in CallbackTypes then
+          {$ifdef VER1_0}FD_Set{$else}fpFD_SET{$endif}(Data^.IOHandle, PFDSet(Handle^.Data.FDData)[1]);
       end;
   end;
 end;
@@ -193,10 +203,11 @@ function asyncGetTicks: Int64; cdecl;
 var
   Time: TimeVal;
 begin
-   fpGetTimeOfDay({$ifndef ver1_0}@time,nil{$else}time{$endif});
    {$ifdef ver1_0}
+   GetTimeOfDay(time);
    Result := Int64(Time.Sec) * 1000 + Int64(Time.USec div 1000);
    {$else}
+   fpGetTimeOfDay(@time,nil);
    Result := Int64(Time.tv_Sec) * 1000 + Int64(Time.tv_USec div 1000);
    {$endif}
 end;
@@ -207,7 +218,10 @@ end.
 
 {
   $Log$
-  Revision 1.6  2003-09-19 17:46:23  marco
+  Revision 1.7  2003-09-28 09:38:17  peter
+    * fixed for 1.0.x
+
+  Revision 1.6  2003/09/19 17:46:23  marco
    * Unix reform stage III aftermath
 
   Revision 1.5  2002/09/25 21:53:39  sg