From 1b745661e4c5086e48ca5484814ad2c6220ba7b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A0=C2=A0=D0=A1=D1=93=D0=A1=D0=83=D0=A0=C2=BB=D0=A0=C2=B0?= =?UTF-8?q?=D0=A0=D0=85=20=D0=A0=C2=98=D0=A0=C2=B6=D0=A0=C2=B1=D0=A1=D1=93=D0?= =?UTF-8?q?=A0=C2=BB=D0=A0=C2=B0=D0=A1=E2=80=9A=D0=A0=D1=95=D0=A0=D0=86?= Date: Fri, 14 Dec 2012 15:06:20 +0400 Subject: [PATCH] Don't forget to cancel old tasks in FS --- src/fs/gnunet-service-fs_pe.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/fs/gnunet-service-fs_pe.c b/src/fs/gnunet-service-fs_pe.c index c7cac75..0992d21 100644 --- a/src/fs/gnunet-service-fs_pe.c +++ b/src/fs/gnunet-service-fs_pe.c @@ -391,6 +391,9 @@ transmit_message_callback (void *cls, size_t buf_size, void *buf) if (NULL == buf) { /* failed, try again... */ + if (GNUNET_SCHEDULER_NO_TASK != pp->task) + GNUNET_SCHEDULER_cancel (pp->task); + pp->task = GNUNET_SCHEDULER_add_now (&schedule_peer_transmission, pp); GNUNET_STATISTICS_update (GSF_stats, gettext_noop @@ -401,12 +404,16 @@ transmit_message_callback (void *cls, size_t buf_size, void *buf) rp = GNUNET_CONTAINER_heap_peek (pp->priority_heap); if (NULL == rp) { + if (GNUNET_SCHEDULER_NO_TASK != pp->task) + GNUNET_SCHEDULER_cancel (pp->task); pp->task = GNUNET_SCHEDULER_add_now (&schedule_peer_transmission, pp); return 0; } msize = GSF_pending_request_get_message_ (get_latest (rp), buf_size, buf); if (msize > buf_size) { + if (GNUNET_SCHEDULER_NO_TASK != pp->task) + GNUNET_SCHEDULER_cancel (pp->task); /* buffer to small (message changed), try again */ pp->task = GNUNET_SCHEDULER_add_now (&schedule_peer_transmission, pp); return 0; -- 1.7.11