diff options
author | Christian Grothoff <christian@grothoff.org> | 2022-07-11 14:42:27 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2022-07-11 14:42:27 +0200 |
commit | 2942cbd1ba4e2f647e40a9ec6daea48550702255 (patch) | |
tree | 7e6b9f89a58aabd0f5c1db68dee6703beefe6c7c | |
parent | e163e198938d36df945334dd7dcff185c28919c4 (diff) | |
download | anastasis-2942cbd1ba4e2f647e40a9ec6daea48550702255.tar.gz anastasis-2942cbd1ba4e2f647e40a9ec6daea48550702255.tar.bz2 anastasis-2942cbd1ba4e2f647e40a9ec6daea48550702255.zip |
-fix potential tt double-scheduling
-rw-r--r-- | src/reducer/anastasis_api_redux.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/reducer/anastasis_api_redux.c b/src/reducer/anastasis_api_redux.c index 36386de..0535883 100644 --- a/src/reducer/anastasis_api_redux.c +++ b/src/reducer/anastasis_api_redux.c @@ -663,6 +663,8 @@ config_cb (void *cls, if (MHD_HTTP_OK != http_status) { cr->backoff = GNUNET_TIME_STD_BACKOFF (cr->backoff); + GNUNET_assert (NULL == cr->tt); + GNUNET_assert (NULL != cr->url); cr->tt = GNUNET_SCHEDULER_add_delayed (cr->backoff, &retry_config, cr); @@ -690,6 +692,8 @@ config_request_timeout (void *cls) cr->ec = TALER_EC_GENERIC_TIMEOUT; notify_waiting (cr); cr->backoff = GNUNET_TIME_STD_BACKOFF (cr->backoff); + GNUNET_assert (NULL == cr->tt); + GNUNET_assert (NULL != cr->url); cr->tt = GNUNET_SCHEDULER_add_delayed (cr->backoff, &retry_config, cr); @@ -708,6 +712,7 @@ retry_config (void *cls) cr->co = NULL; } cr->timeout_at = GNUNET_TIME_relative_to_absolute (CONFIG_GENERIC_TIMEOUT); + GNUNET_assert (NULL == cr->tt); cr->tt = GNUNET_SCHEDULER_add_at (cr->timeout_at, &config_request_timeout, cr); @@ -774,6 +779,8 @@ check_config (struct GNUNET_TIME_Relative timeout, if (MHD_HTTP_OK == cr->http_status) return cr; cr->timeout_at = GNUNET_TIME_relative_to_absolute (timeout); + if (NULL != cr->tt) + GNUNET_SCHEDULER_cancel (cr->tt); cr->tt = GNUNET_SCHEDULER_add_at (cr->timeout_at, &config_request_timeout, cr); |