* attempt to fix too many onsessionavailible events issue
[lcore.git] / lcorewsaasyncselect.pas
index 3f55f1a22470d0c706ed57cb691d96628c162804..de9d36fd6a7c43e603c5c58164308cf746a66349 100755 (executable)
@@ -141,7 +141,9 @@ begin
 \r
         if readtrigger or writetrigger then lasio.handlefdtrigger(readtrigger,writetrigger);\r
       end;\r
 \r
         if readtrigger or writetrigger then lasio.handlefdtrigger(readtrigger,writetrigger);\r
       end;\r
-      dowsaasyncselect(socket,0,0); //reset watches\r
+      // don't reset the event manually for listen sockets to avoid unwanted
+      // extra onsessionavailible events
+      if (taddrint(findtree(@fdwatches,inttostr(fd))) and FD_ACCEPT) = 0  dowsaasyncselect(socket,0,0); // if not a listen socket reset watches\r
     end;\r
   end else if (ahwnd=hwndlcore) and (aumsg=wm_dotasks) then begin\r
       //writeln('processing tasks');\r
     end;\r
   end else if (ahwnd=hwndlcore) and (aumsg=wm_dotasks) then begin\r
       //writeln('processing tasks');\r