|
From: <arn...@us...> - 2008-01-29 17:23:43
|
Revision: 129
http://adchpp.svn.sourceforge.net/adchpp/?rev=129&view=rev
Author: arnetheduck
Date: 2008-01-29 09:23:40 -0800 (Tue, 29 Jan 2008)
Log Message:
-----------
resend fix
Modified Paths:
--------------
adchpp/trunk/adchpp/ManagedSocket.cpp
adchpp/trunk/changelog.txt
Modified: adchpp/trunk/adchpp/ManagedSocket.cpp
===================================================================
--- adchpp/trunk/adchpp/ManagedSocket.cpp 2008-01-18 22:36:54 UTC (rev 128)
+++ adchpp/trunk/adchpp/ManagedSocket.cpp 2008-01-29 17:23:40 UTC (rev 129)
@@ -98,14 +98,13 @@
// Copy as many buffers as possible
// TODO The last copied buffer should be split...
size_t done = 0;
- BufferList::iterator i;
- for(i = outBuf.begin(); i != outBuf.end(); ++i) {
+ BufferList::iterator i = outBuf.begin();
+ do {
buffers.push_back(*i);
done += (*i)->size();
- if(done > max_send) {
- break;
- }
- }
+ ++i;
+ } while((i != outBuf.end()) && (done < max_send));
+
outBuf.erase(outBuf.begin(), i);
} else {
buffers.swap(outBuf);
@@ -135,6 +134,7 @@
(*i)->erase_first(diff);
}
+ dcdebug("Tried %u buffers, readding %u buffers, diff is %u\n", buffers.size(), std::distance(i, buffers.end()), diff);
outBuf.insert(outBuf.begin(), i, buffers.end());
}
Modified: adchpp/trunk/changelog.txt
===================================================================
--- adchpp/trunk/changelog.txt 2008-01-18 22:36:54 UTC (rev 128)
+++ adchpp/trunk/changelog.txt 2008-01-29 17:23:40 UTC (rev 129)
@@ -2,6 +2,7 @@
* access.lua: fixed message type for MSG
* Some minor socket fixes
* Initial Bloom filter implementation
+* Fixed 100% cpu / infinite resend bug
-- 2.1 2008-01-06 --
* Initial ADC 1.0 release
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|