Jason Tackaberry wrote:
> Author: tack
> Date: Mon Oct 31 16:58:29 2005
> New Revision: 883
>
> Modified:
>    trunk/base/src/base/ipc.py
>
> Log:
> Handle "resource temporarily unavailable" exceptions for socket writes
>
>
> Modified: trunk/base/src/base/ipc.py
> ==============================================================================
> --- trunk/base/src/base/ipc.py        (original)
> +++ trunk/base/src/base/ipc.py        Mon Oct 31 16:58:29 2005
> @@ -349,7 +349,12 @@
>              self.write_buffer = self.write_buffer[sent:]
>              if not self.write_buffer:
>                  self._wmon.unregister()
> -        except socket.error:
> +        except socket.error, (errno, msg):
> +            if errno == 11:
> +                # Resource temporarily unavailable -- we are trying to write
> +                # data to a socket when none is available.
> +                return
> +            # If we're here, then the socket is likely disconnected.
>              self.handle_close()

Won't work. In my case I want to send 200k data. This would block, so
we can an exception. But we can send, so we enter this function again,
but not 200k, so we leave again. You need to send in 4k pieces to be sure.


Dischi

-- 
UNIX _is_ user friendly - it's just selective about who its friends are!

Attachment: pgpGPQLshaR77.pgp
Description: PGP signature

Reply via email to