curl-library
Re: [PATCH] Better pipelining, round two
Date: Mon, 14 Jan 2008 13:47:43 +0300
Hi!
Here is second version of the patch. I think it fixes all mentioned
issues with previous version. Changes:
* Curl_llist_move() function added. Moves element from one list to
another with no mallocs/frees.
* Use Curl_llist_move() in Curl_checkPendPipeline(). Now
Curl_checkPendPipeline() does no mallocs/frees, and should never fail
:)
* Curl_moveHandleFromSendToRecvPipeline() function added. Uses
Curl_llist_move(). This function is used instead of remove/add pair in
multi_runsingle() function.
The last change makes patch "more dangerous" since it affects not only
pipelining. But all tests are passed, so I believe it is safe.
./runtests.pl -t 530 still fails for me. But:
1. It fails without my patch as well. So I do not think it is my fault.
2. It fails in random places. Say if it says test 1023 failed, and I
run "./runtests.pl -t1023 530" several times, it sometimes fails and
sometimes passes. Very odd to me.
I am ready to do more memory related tests if you give me advise how.
Regards,
Dmitry
- text/x-diff attachment: pipelining2.patch