procedure tlasio.internalclose(error:word);\r
begin\r
if (state<>wsclosed) and (state<>wsinvalidstate) then begin\r
+ // -2 is a special indication that we should just exist silently\r
+ // (used for connect failure handling when socket creation fails)\r
+ if (fdhandlein = -2) and (fdhandleout = -2) then exit;\r
if (fdhandlein < 0) or (fdhandleout < 0) then raise exception.create('internalclose called with invalid fd handles');\r
eventcore.rmasterclr(fdhandlein);//fd_clr(fdhandlein,fdsrmaster);\r
eventcore.wmasterclr(fdhandleout);//fd_clr(fdhandleout,fdswmaster);\r
internalclose(0);\r
\r
end else begin\r
- {$ifdef win32}
- if getlasterror=WSAEWOULDBLOCK then begin
- //the asynchronous nature of windows messages means we sometimes
- //get here with the buffer full
- //so do nothing in that case
- end else
- {$endif}
- begin
+ {$ifdef win32}\r
+ if getlasterror=WSAEWOULDBLOCK then begin\r
+ //the asynchronous nature of windows messages means we sometimes\r
+ //get here with the buffer full\r
+ //so do nothing in that case\r
+ end else\r
+ {$endif}\r
+ begin\r
internalclose({$ifdef win32}getlasterror{$else}linuxerror{$endif});\r
- end
+ end \r
end;\r
end;\r
\r