Make queuing a request a truly constant-time operation at the cost of a bit more space.  (We'll store the tail of the request list to achieve this.)
Make queuing a request a truly constant-time operation at the cost of a bit
more space.  (We'll store the tail of the request list to achieve this.)

This gets to be noticable when we have 4,000+ requests in our pipeline...

* context.c
  (serf_connection_t): Store a pointer to the tail of the list.
  (no_more_writes): Move the tail to our hold list and reset the request tail.
  (read_from_connection): Do not assume that every request has been written;
  update our tail if we're truly exhausted now.
  (link_requests): Handle updating a tail pointer instead of walking the
  entire list to add a new request or linked requests.
  (serf_connection_reset): Pass in the tail pointers to link_requests; move
  the held requests back to the ->requests list in O(1) time.
  (serf_request_connection_create): Pass in the tail pointers to link_requests.


git-svn-id: 683495cb1553624b05a54e2ba9533425f69cf277@918 61a7d7f5-40b7-0310-9c16-bb0ea8cb1845

coapp-packages/serf,coapp-packages/serf,coapp-packages/serf