diff options
author | Christian Grothoff <christian@grothoff.org> | 2015-03-07 18:29:42 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2015-03-07 18:29:42 +0000 |
commit | 6da7b6a2dc5ec3645d5f8bdbd4ab77d6090b823f (patch) | |
tree | e2ff0e0068f8d064e4a3f63af5121e18e3aef6dd /src/fs/fs_api.c | |
parent | e96f9b7e879d6e6ea44824a89fce59d41435d661 (diff) | |
download | gnunet-6da7b6a2dc5ec3645d5f8bdbd4ab77d6090b823f.tar.gz gnunet-6da7b6a2dc5ec3645d5f8bdbd4ab77d6090b823f.zip |
fix #3704
Diffstat (limited to 'src/fs/fs_api.c')
-rw-r--r-- | src/fs/fs_api.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/src/fs/fs_api.c b/src/fs/fs_api.c index eb692a93e..f539c7910 100644 --- a/src/fs/fs_api.c +++ b/src/fs/fs_api.c | |||
@@ -202,6 +202,8 @@ process_job_queue (void *cls, | |||
202 | break; | 202 | break; |
203 | } | 203 | } |
204 | } | 204 | } |
205 | GNUNET_break (h->active_downloads == | ||
206 | num_downloads_active + num_probes_active); | ||
205 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 207 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
206 | "PA: %u, PE: %u, PW: %u; DA: %u, DE: %u, DW: %u\n", | 208 | "PA: %u, PE: %u, PW: %u; DA: %u, DE: %u, DW: %u\n", |
207 | num_probes_active, | 209 | num_probes_active, |
@@ -210,6 +212,8 @@ process_job_queue (void *cls, | |||
210 | num_downloads_active, | 212 | num_downloads_active, |
211 | num_downloads_expired, | 213 | num_downloads_expired, |
212 | num_downloads_waiting); | 214 | num_downloads_waiting); |
215 | GNUNET_break (h->active_downloads + num_probes_active <= | ||
216 | h->max_parallel_downloads); | ||
213 | /* calculate start/stop decisions */ | 217 | /* calculate start/stop decisions */ |
214 | if (h->active_downloads + num_downloads_waiting > h->max_parallel_downloads) | 218 | if (h->active_downloads + num_downloads_waiting > h->max_parallel_downloads) |
215 | { | 219 | { |
@@ -225,17 +229,19 @@ process_job_queue (void *cls, | |||
225 | /* start all downloads (we can) */ | 229 | /* start all downloads (we can) */ |
226 | num_downloads_change = num_downloads_waiting; | 230 | num_downloads_change = num_downloads_waiting; |
227 | /* also start probes if there is room, but use a lower cap of (mpd/4) + 1 */ | 231 | /* also start probes if there is room, but use a lower cap of (mpd/4) + 1 */ |
228 | if (h->max_parallel_downloads / 2 >= (h->active_downloads + num_downloads_change)) | 232 | if (1 + h->max_parallel_downloads / 4 >= (h->active_downloads + num_downloads_change)) |
229 | num_probes_change = GNUNET_MIN (num_probes_waiting, | 233 | num_probes_change = GNUNET_MIN (num_probes_waiting, |
230 | (1 + h->max_parallel_downloads / 4) - (h->active_downloads + num_downloads_change)); | 234 | (1 + h->max_parallel_downloads / 4) - (h->active_downloads + num_downloads_change)); |
231 | else | 235 | else |
232 | num_probes_change = 0; | 236 | num_probes_change = 0; |
233 | } | 237 | } |
234 | 238 | GNUNET_break (num_downloads_change <= num_downloads_waiting); | |
235 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 239 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
236 | "Changing %d probes and %d downloads\n", | 240 | "Changing %d probes and %d/%u/%u downloads\n", |
237 | num_probes_change, | 241 | num_probes_change, |
238 | num_downloads_change); | 242 | num_downloads_change, |
243 | (unsigned int) h->active_downloads, | ||
244 | (unsigned int) h->max_parallel_downloads); | ||
239 | /* actually stop probes */ | 245 | /* actually stop probes */ |
240 | next = h->running_head; | 246 | next = h->running_head; |
241 | while (NULL != (qe = next)) | 247 | while (NULL != (qe = next)) |
@@ -289,7 +295,8 @@ process_job_queue (void *cls, | |||
289 | break; | 295 | break; |
290 | } | 296 | } |
291 | } | 297 | } |
292 | GNUNET_break ( (0 == num_downloads_change) || (GNUNET_YES == block_limit_hit) ); | 298 | GNUNET_break ( (0 == num_downloads_change) || |
299 | (GNUNET_YES == block_limit_hit) ); | ||
293 | GNUNET_break (0 == num_probes_change); | 300 | GNUNET_break (0 == num_probes_change); |
294 | 301 | ||
295 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 302 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |