消息 [136090]
> Thus,
> Connection.recv_bytes() will be called:
>
> def _recv_bytes(self, maxsize=None):
> buf = self._recv(4)
> size, = struct.unpack("=i", buf.getvalue())
> if maxsize is not None and size > maxsize:
> return None
> return self._recv(size)
>
> The first _recv() will succeed, since the length is in the Pipe.
> The second one, however, will remain stuck on the read from the
> pipe/unix socket, because there's no more data.
> This can be reproduced easily by adding a short sleep right after the
> sending of the length of the buffer inside send_bytes(), and then
> sending a SIGKILL to a worker process.
That's true. We would need to insert a select() before each raw read(). |
|
| 日期 |
用户 |
动作 |
参数 |
| 2011-05-16 14:00:08 | pitrou | 修改 | recipients:
+ pitrou, jcea, bquinlan, vstinner, jnoller, hongqn, brian.curtin, asksol, vlasovskikh, neologix, gdb, Albert.Strasheim, aljungberg, gkcn |
| 2011-05-16 14:00:07 | pitrou | 链接 | issue9205 messages |
| 2011-05-16 14:00:07 | pitrou | 创建 | |
|