* Changed RequestList so that it clears m_canceled when a non-canceled

piece is downloaded, and it no longer checks the whole dequeue for
invalid transfers.

* Fixed a bad exception in
PeerConnectionBase::down_chunk_from_buffer(), it is supposed to check
the buffer was used up only when the transfer is unfinished, not when
finished.

* Added --with-address-space to allow the user to change the address
space size. Defaults to 1024 MB on 32 bit, 4096 MB on 64 bit archs.

* Added a parameter to display::Manager::schedule_update that sets the
minimum update interval. Normal updates use 50 msec, adjust_layout
uses 0 msec.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@769 e378c898-3ddf-0310-93e7-cc216c733640
This commit is contained in:
rakshasa
2006-08-31 00:01:12 +00:00
parent ab3a0fead2
commit af6eb493a9
4 changed files with 32 additions and 6 deletions
+21
View File
@@ -331,3 +331,24 @@ AC_DEFUN([TORRENT_WITHOUT_STATFS], [
fi
])
])
AC_DEFUN([TORRENT_WITH_ADDRESS_SPACE], [
AC_ARG_WITH(address-space,
AC_HELP_STRING([--with-address-space=MB], [Change the default address space size, default 1024 MB.]),
[
if test ! -z $withval -a "$withval" != "yes" -a "$withval" != "no"; then
AC_DEFINE_UNQUOTED(DEFAULT_ADDRESS_SPACE_SIZE, [$withval])
else
AC_MSG_ERROR(--with-address-space requires a parameter.)
fi
],
[
AC_CHECK_SIZEOF(long)
if test "$ac_cv_sizeof_long" = "4"; then
AC_DEFINE(DEFAULT_ADDRESS_SPACE_SIZE, 4096, Default address space size.)
else
AC_DEFINE(DEFAULT_ADDRESS_SPACE_SIZE, 1024, Default address space size.)
fi
])
])
+7 -5
View File
@@ -66,19 +66,21 @@ void
Manager::schedule(Window* w, rak::timer t) {
rak::priority_queue_erase(&m_scheduler, w->task_update());
rak::priority_queue_insert(&m_scheduler, w->task_update(), t);
schedule_update();
schedule_update(50000);
}
void
Manager::unschedule(Window* w) {
rak::priority_queue_erase(&m_scheduler, w->task_update());
schedule_update();
schedule_update(50000);
}
void
Manager::adjust_layout() {
Canvas::redraw_std();
m_rootFrame.balance(0, 0, Canvas::get_screen_width(), Canvas::get_screen_height());
schedule_update(0);
}
void
@@ -101,11 +103,11 @@ Manager::receive_update() {
Canvas::do_update();
m_timeLastUpdate = cachedTime;
schedule_update();
schedule_update(50000);
}
void
Manager::schedule_update() {
Manager::schedule_update(uint32_t minInterval) {
if (m_scheduler.empty()) {
rak::priority_queue_erase(&taskScheduler, &m_taskUpdate);
return;
@@ -113,7 +115,7 @@ Manager::schedule_update() {
if (!m_taskUpdate.is_queued() || m_taskUpdate.time() > m_scheduler.top()->time()) {
rak::priority_queue_erase(&taskScheduler, &m_taskUpdate);
rak::priority_queue_insert(&taskScheduler, &m_taskUpdate, std::max(m_scheduler.top()->time(), m_timeLastUpdate + 50000));
rak::priority_queue_insert(&taskScheduler, &m_taskUpdate, std::max(m_scheduler.top()->time(), m_timeLastUpdate + minInterval));
}
}
+1 -1
View File
@@ -63,7 +63,7 @@ public:
Frame* root_frame() { return &m_rootFrame; }
private:
void schedule_update();
void schedule_update(uint32_t minInterval);
bool m_forceRedraw;
rak::timer m_timeLastUpdate;
+3
View File
@@ -40,6 +40,7 @@
#include <torrent/file_list.h>
#include "display/frame.h"
#include "display/manager.h"
#include "display/window_file_list.h"
#include "input/manager.h"
@@ -77,6 +78,8 @@ ElementFileList::activate(display::Frame* frame, bool focus) {
m_frame = frame;
m_frame->initialize_window(m_window);
// control->display()->adjust_layout();
}
void