secondlistener
[lcore.git] / lcorewsaasyncselect.pas
index 3f55f1a22470d0c706ed57cb691d96628c162804..712bd7fd4c466cac0f70c1802ef45fef81b9e75b 100755 (executable)
@@ -138,10 +138,12 @@ begin
       end else begin\r
         if (event and (FD_READ or FD_ACCEPT)) <> 0 then readtrigger := true;\r
         if (event and (FD_WRITE)) <> 0 then writetrigger := true;\r
-\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\r
+      // extra onsessionavailible events\r
+      if (taddrint(findtree(@fdwatches,inttostr(socket))) and FD_ACCEPT) = 0 then 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