aboutsummaryrefslogtreecommitdiff
path: root/src/fs/fs_api.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2015-03-07 18:29:42 +0000
committerChristian Grothoff <christian@grothoff.org>2015-03-07 18:29:42 +0000
commit6da7b6a2dc5ec3645d5f8bdbd4ab77d6090b823f (patch)
treee2ff0e0068f8d064e4a3f63af5121e18e3aef6dd /src/fs/fs_api.c
parente96f9b7e879d6e6ea44824a89fce59d41435d661 (diff)
downloadgnunet-6da7b6a2dc5ec3645d5f8bdbd4ab77d6090b823f.tar.gz
gnunet-6da7b6a2dc5ec3645d5f8bdbd4ab77d6090b823f.zip
fix #3704
Diffstat (limited to 'src/fs/fs_api.c')
-rw-r--r--src/fs/fs_api.c17
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,