1. 18 Jul, 2002 11 commits
  2. 17 Jul, 2002 22 commits
  3. 16 Jul, 2002 7 commits
    • Guido van Rossum's avatar
    • Jeremy Hylton's avatar
      e3252ec6
    • Tim Peters's avatar
      Whitespace normalization. · c411dbae
      Tim Peters authored
      c411dbae
    • Jeremy Hylton's avatar
      Send HTTP requests with a single send() call instead of many. · 8531b1b2
      Jeremy Hylton authored
      The implementation now stores all the lines of the request in a buffer
      and makes a single send() call when the request is finished,
      specifically when endheaders() is called.
      
      This appears to improve performance.  The old code called send() for
      each line.  The sends are all short, so they caused bad interactions
      with the Nagle algorithm and delayed acknowledgements.  In simple
      tests, the second packet was delayed by 100s of ms.  The second send was
      delayed by the Nagle algorithm, waiting for the ack.  The delayed ack
      strategy delays the ack in hopes of piggybacking it on a data packet,
      but the server won't send any data until it receives the complete
      request.
      
      This change minimizes the problem that Nagle + delayed ack will cause
      a problem, although a request large enough to be broken into two
      packets will still suffer some delay.  Luckily the MSS is large enough
      to accomodate most single packets.
      
      XXX Bug fix candidate?
      8531b1b2
    • Guido van Rossum's avatar
      Remove the next() method -- one is supplied automatically by · ca5ed5b8
      Guido van Rossum authored
      PyType_Ready() because the tp_iternext slot is set (fortunately,
      because using the tp_iternext implementation for the the next()
      implementation is buggy).  Also changed the allocation order in
      enum_next() so that the underlying iterator is only moved ahead when
      we have successfully allocated the result tuple and index.
      ca5ed5b8
    • Guido van Rossum's avatar
      Remove the next() method -- one is supplied automatically by · 86d593e1
      Guido van Rossum authored
      PyType_Ready() because the tp_iternext slot is set.  Also removed the
      redundant (and expensive!) call to raise StopIteration from
      rangeiter_next().
      86d593e1
    • Guido van Rossum's avatar
      Make StopIteration a sink state. This is done by clearing out the · 2147df74
      Guido van Rossum authored
      di_dict field when the end of the list is reached.  Also make the
      error ("dictionary changed size during iteration") a sticky state.
      
      Also remove the next() method -- one is supplied automatically by
      PyType_Ready() because the tp_iternext slot is set.  That's a good
      thing, because the implementation given here was buggy (it never
      raised StopIteration).
      2147df74