Changes between and of Initial VersionVersion 2Ticket #5413


Ignore:
Timestamp:
04/24/13 20:32:22 (9 years ago)
Author:
Jean-Paul Calderone
Comment:

Changing the summary and description of this ticket. Composition should be preferred over inheritance in almost all cases, and this seems like a case where that wisdom clearly applies. However, the *problem* is several bugs in _PollableWritePipe. The implementation details of the solution to the problem may be a subject for discussion.

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #5413

    • Property Summary changed from refactor pollingfile._PollableWritePipe as a subclass of abstract.FileDescriptor to The producer/consumer implementation of pollingfile._PollableWritePipe has some bugs
  • Ticket #5413 – Description

    initial v2  
    11I started filling bugs with #5412, but then found #2839, #2835 and that:
     2
    23 1. `writeSequence` doesn't pause the producer when outgoing buffer is full,
    34 2. data written with `write` gets dropped while the pipe is still disconnecting,
    45 3. `bufferEmpty` sets `producerPaused` attribute on the producer instead of on itself, consequently `producer.resumeProducing` can get called too many times.
    56
    6 I think that refactoring `pollingfile._PollableWritePipe` as a subclass of `abstract.FileDescriptor` will be less work than fixing all these bugs.
     7File a ticket for each of these bugs as well.  Then, fix them.  This ticket is overly broad and should probably be closed as a duplicate once those tickets are filed.