Joe Shochet 25 лет назад
Родитель
Сommit
bdd378eba9
2 измененных файлов с 8 добавлено и 3 удалено
  1. 7 2
      panda/src/downloader/downloader.cxx
  2. 1 1
      panda/src/downloader/downloader.h

+ 7 - 2
panda/src/downloader/downloader.cxx

@@ -371,6 +371,9 @@ run(void) {
 
   // Recompute the buffer size if necessary
   if (_recompute_buffer == true) {
+    if (downloader_cat.is_debug())
+      downloader_cat.debug()
+	<< "Downloader::run() - Recomputing the buffer" << endl;
 
     // Flush the current buffer if it holds any data
     if (_current_status->_bytes_in_buffer > 0) {
@@ -381,12 +384,14 @@ run(void) {
     }
 
     // Allocate a new buffer
-    _buffer.clear();  
-    _receive_size = (int)ceil(_frequency * _byte_rate);
+    _buffer.clear();
+    _receive_size = _frequency * _byte_rate;
     _disk_buffer_size = _receive_size * _disk_write_frequency;
     _buffer = new Buffer(_disk_buffer_size);
     _current_status->_buffer = _buffer->_buffer;
     _current_status->reset();
+    // Reset the flag
+    _recompute_buffer = false;
 
   } else if (_current_status->_bytes_in_buffer + _receive_size > 
 						_disk_buffer_size) {

+ 1 - 1
panda/src/downloader/downloader.h

@@ -101,7 +101,7 @@ private:
   int _disk_write_frequency;
   float _frequency;
   float _byte_rate; 
-  int _receive_size;
+  ulong _receive_size;
   int _disk_buffer_size;
   ofstream _dest_stream;
   bool _recompute_buffer;