fd related central definition and small performance tweak in lcoreselect
[lcore.git] / lcoreselect.pas
index feb8ef8b6388e2fa39bd66899c1a82fe3ff11b52..659bfce58d8daf099acc0f7cab9fa888271fedd5 100755 (executable)
@@ -93,6 +93,7 @@ var
   tempsocket    : tlasio  ;\r
   socketcount   : integer ; // for debugging perposes :)\r
   dw,bt:integer;\r
+  currentfdword:fdword;\r
   fd : integer;\r
 begin\r
   //writeln('entering processasios');\r
@@ -104,10 +105,11 @@ begin
 \r
   {------- test optimised loop}\r
   socketcount := 0;\r
-  for dw := (maxs shr 5) downto 0 do if (fdsr[dw] or fdsw[dw]) <> 0 then begin\r
-    for bt := 0 to 31 do if (fdsr[dw] or fdsw[dw]) and (1 shl bt) <> 0 then begin\r
+  for dw := (maxs shr fdwordshift) downto 0 do if (fdsr[dw] or fdsw[dw]) <> 0 then begin\r
+    currentfdword := (fdsr[dw] or fdsw[dw]);\r
+    for bt := fdwordmaxbit downto 0 do if currentfdword and (1 shl bt) <> 0 then begin\r
       inc(socketcount);\r
-      fd := dw shl 5 or bt;\r
+      fd := dw shl fdwordshift or bt;\r
       //writeln('reversing fd ',fd);\r
       currentsocket := fdreverse[fd];\r
       {if not assigned(currentsocket) then raise exception.create('currentsocket not assigned');\r