X-Git-Url: http://www.lcore.org/git/lcore.git/blobdiff_plain/6cb6b7ede2d178e03fa817bc28474c175f5a93b9..d2948bcc680fb1c36613c8535757fe0ed1faf10f:/lcorewsaasyncselect.pas?ds=inline

diff --git a/lcorewsaasyncselect.pas b/lcorewsaasyncselect.pas
index 3f55f1a..712bd7f 100755
--- a/lcorewsaasyncselect.pas
+++ b/lcorewsaasyncselect.pas
@@ -138,10 +138,12 @@ begin
       end else begin
         if (event and (FD_READ or FD_ACCEPT)) <> 0 then readtrigger := true;
         if (event and (FD_WRITE)) <> 0 then writetrigger := true;
-
+                      
         if readtrigger or writetrigger then lasio.handlefdtrigger(readtrigger,writetrigger);
       end;
-      dowsaasyncselect(socket,0,0); //reset watches
+      // don't reset the event manually for listen sockets to avoid unwanted
+      // extra onsessionavailible events
+      if (taddrint(findtree(@fdwatches,inttostr(socket))) and FD_ACCEPT) = 0 then dowsaasyncselect(socket,0,0); // if not a listen socket reset watches
     end;
   end else if (ahwnd=hwndlcore) and (aumsg=wm_dotasks) then begin
       //writeln('processing tasks');