* make disabling/enabling a timer on windows reset it like on linux
[lcore.git] / lcoreselect.pas
index e0351ebfa7400afd280049b29e8a30dbda84bf4e..0d99f6ad900c4dd5b0d6bf63d616ed7f81a69334 100755 (executable)
@@ -6,12 +6,12 @@
   For conditions of distribution and use, see copyright notice in zlib_license.txt\r
   which is included in the package\r
   ----------------------------------------------------------------------------- }\r
-
-{$ifdef fpc}                                                                    
-  {$ifndef ver1_0}                                                              
-    {$define useinline}                                                         
-  {$endif}                                                                      
-{$endif}  \r
+\r
+{$ifdef fpc}\r
+  {$ifndef ver1_0}\r
+    {$define useinline}\r
+  {$endif}\r
+{$endif}\r
 \r
 unit lcoreselect;\r
 \r
@@ -41,8 +41,12 @@ uses
 \r
 {$include unixstuff.inc}\r
 {$include ltimevalstuff.inc}\r
+\r
+const\r
+  absoloutemaxs_select = (sizeof(fdset)*8)-1;\r
+\r
 var\r
-  fdreverse:array[0..absoloutemaxs] of tlasio;\r
+  fdreverse:array[0..absoloutemaxs_select] of tlasio;\r
 type\r
   tselecteventcore=class(teventcore)\r
     public\r
@@ -209,7 +213,7 @@ var
 \r
 var\r
   fdsrmaster , fdswmaster               : fdset      ;\r
-
+\r
 function getfdsrmaster : fdset; {$ifdef fpc}inline;{$endif}\r
 begin\r
   result := fdsrmaster;\r
@@ -218,8 +222,8 @@ function getfdswmaster : fdset; {$ifdef fpc}inline;{$endif}
 begin\r
   result := fdswmaster;\r
 end;\r
-
-
+\r
+\r
 Function  doSelect(timeOut:PTimeVal):longint;//inline;\r
 var\r
   localtimeval : ttimeval;\r
@@ -393,6 +397,8 @@ end;
 begin\r
   eventcore := tselecteventcore.create;\r
 \r
+  absoloutemaxs := absoloutemaxs_select;\r
+\r
   maxs := 0;\r
   fd_zero(fdsrmaster);\r
   fd_zero(fdswmaster);\r