* Added lazy syncing of chunks.

git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@557 e378c898-3ddf-0310-93e7-cc216c733640
This commit is contained in:
rakshasa
2005-09-10 15:38:34 +00:00
parent c347ccc439
commit 5ada857c3e
3 changed files with 34 additions and 1 deletions
+21
View File
@@ -91,6 +91,27 @@ equal(Type t, Ftor f) {
return equal_t<Type, Ftor>(t, f);
}
template <typename Type, typename Ftor>
struct not_equal_t {
typedef bool result_type;
not_equal_t(Type t, Ftor f) : m_t(t), m_f(f) {}
template <typename Arg>
bool operator () (Arg& a) {
return m_t != m_f(a);
}
Type m_t;
Ftor m_f;
};
template <typename Type, typename Ftor>
inline not_equal_t<Type, Ftor>
not_equal(Type t, Ftor f) {
return not_equal_t<Type, Ftor>(t, f);
}
template <typename Type, typename Ftor>
struct less_t {
typedef bool result_type;
+1 -1
View File
@@ -112,7 +112,7 @@ CurlStack::add_get(CurlGet* get) {
m_getList.push_back(get);
// Curl ML suggest we need to do perform after adding a handle.
perform();
//perform();
}
void
+12
View File
@@ -54,6 +54,10 @@ PollManager::PollManager(torrent::Poll* poll) :
m_readSet = (fd_set*)new char[m_setSize];
m_writeSet = (fd_set*)new char[m_setSize];
m_errorSet = (fd_set*)new char[m_setSize];
std::memset(m_readSet, 0, m_setSize);
std::memset(m_writeSet, 0, m_setSize);
std::memset(m_errorSet, 0, m_setSize);
#else
if (m_poll->get_open_max() > FD_SETSIZE)
throw std::logic_error("PollManager::PollManager(...) received a max open sockets >= FD_SETSIZE, but USE_VARIABLE_FDSET was not defined");
@@ -62,7 +66,15 @@ PollManager::PollManager(torrent::Poll* poll) :
m_readSet = new fd_set;
m_writeSet = new fd_set;
m_errorSet = new fd_set;
FD_ZERO(m_readSet);
FD_ZERO(m_writeSet);
FD_ZERO(m_errorSet);
#endif
// Call this so curl has valid fd_set pointers if curl_multi_perform
// is called before it gets set when polling.
m_httpStack.fdset(m_readSet, m_writeSet, m_errorSet);
}
PollManager::~PollManager() {