[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r11446 - gnunet/src/arm
From: |
gnunet |
Subject: |
[GNUnet-SVN] r11446 - gnunet/src/arm |
Date: |
Thu, 20 May 2010 13:41:09 +0200 |
Author: grothoff
Date: 2010-05-20 13:41:09 +0200 (Thu, 20 May 2010)
New Revision: 11446
Modified:
gnunet/src/arm/gnunet-service-arm.c
gnunet/src/arm/gnunet-service-manager.c
Log:
abort start task on shutdown of connection
Modified: gnunet/src/arm/gnunet-service-arm.c
===================================================================
--- gnunet/src/arm/gnunet-service-arm.c 2010-05-20 11:18:40 UTC (rev 11445)
+++ gnunet/src/arm/gnunet-service-arm.c 2010-05-20 11:41:09 UTC (rev 11446)
@@ -711,6 +711,7 @@
shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
{
struct ServiceList *pos;
+
#if DEBUG_ARM
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, _("Stopping all services\n"));
#endif
Modified: gnunet/src/arm/gnunet-service-manager.c
===================================================================
--- gnunet/src/arm/gnunet-service-manager.c 2010-05-20 11:18:40 UTC (rev
11445)
+++ gnunet/src/arm/gnunet-service-manager.c 2010-05-20 11:41:09 UTC (rev
11446)
@@ -152,6 +152,11 @@
* Current back-off value.
*/
struct GNUNET_TIME_Relative back_off;
+
+ /**
+ * Task that tries to initiate forwarding.
+ */
+ GNUNET_SCHEDULER_TaskIdentifier start_task;
/**
*
@@ -325,6 +330,9 @@
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Closing forwarding connection (done with both directions)\n");
#endif
+ if (fc->start_task != GNUNET_SCHEDULER_NO_TASK)
+ GNUNET_SCHEDULER_cancel (scheduler,
+ fc->start_task);
if ( (NULL != fc->armClientSocket) &&
(GNUNET_SYSERR ==
GNUNET_NETWORK_socket_close (fc->armClientSocket)) )
@@ -497,11 +505,13 @@
rem).value);
#endif
rem = GNUNET_TIME_absolute_get_remaining (fc->timeout);
- GNUNET_SCHEDULER_add_delayed (scheduler,
- GNUNET_TIME_relative_min (fc->back_off,
- rem),
- &start_forwarding,
- fc);
+ GNUNET_assert (GNUNET_SCHEDULER_NO_TASK == fc->start_task);
+ fc->start_task
+ = GNUNET_SCHEDULER_add_delayed (scheduler,
+ GNUNET_TIME_relative_min
(fc->back_off,
+ rem),
+ &start_forwarding,
+ fc);
}
else
{
@@ -590,11 +600,13 @@
rem).value);
#endif
rem = GNUNET_TIME_absolute_get_remaining (fc->timeout);
- GNUNET_SCHEDULER_add_delayed (scheduler,
- GNUNET_TIME_relative_min (fc->back_off,
- rem),
- &start_forwarding,
- fc);
+ GNUNET_assert (GNUNET_SCHEDULER_NO_TASK == fc->start_task);
+ fc->start_task
+ = GNUNET_SCHEDULER_add_delayed (scheduler,
+ GNUNET_TIME_relative_min
(fc->back_off,
+ rem),
+ &start_forwarding,
+ fc);
}
else
{
@@ -703,6 +715,7 @@
struct ForwardedConnection *fc = cls;
struct GNUNET_TIME_Relative rem;
+ fc->start_task = GNUNET_SCHEDULER_NO_TASK;
if ( (NULL != tc) &&
(0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN)) )
{
@@ -751,11 +764,13 @@
(unsigned long long) GNUNET_TIME_relative_min (fc->back_off,
rem).value);
#endif
- GNUNET_SCHEDULER_add_delayed (scheduler,
- GNUNET_TIME_relative_min (fc->back_off,
- rem),
- &start_forwarding,
- fc);
+ GNUNET_assert (GNUNET_SCHEDULER_NO_TASK == fc->start_task);
+ fc->start_task
+ = GNUNET_SCHEDULER_add_delayed (scheduler,
+ GNUNET_TIME_relative_min (fc->back_off,
+ rem),
+ &start_forwarding,
+ fc);
return;
}
#if DEBUG_SERVICE_MANAGER
@@ -885,7 +900,11 @@
GNUNET_TIME_UNIT_FOREVER_REL,
fc->armClientSocket,
&receiveFromClient, fc);
- start_forwarding (fc, NULL);
+ GNUNET_assert (GNUNET_SCHEDULER_NO_TASK == fc->start_task);
+ fc->start_task
+ = GNUNET_SCHEDULER_add_now (scheduler,
+ &start_forwarding,
+ fc);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r11446 - gnunet/src/arm,
gnunet <=