summaryrefslogtreecommitdiff
path: root/src/exchange/taler-exchange-httpd_keystate.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2020-01-17 19:32:12 +0100
committerChristian Grothoff <christian@grothoff.org>2020-01-17 19:32:12 +0100
commit2ce6c7a9d8fa5940049e0ea9f9f13b908ce6c7f8 (patch)
tree5140107a6808d6e0a75bdce68bf5584abf90612a /src/exchange/taler-exchange-httpd_keystate.c
parentbf2cdc7ea2c48683b3d5a2433696dfe46cf19dbb (diff)
downloadexchange-2ce6c7a9d8fa5940049e0ea9f9f13b908ce6c7f8.tar.gz
exchange-2ce6c7a9d8fa5940049e0ea9f9f13b908ce6c7f8.tar.bz2
exchange-2ce6c7a9d8fa5940049e0ea9f9f13b908ce6c7f8.zip
more KS cleanups, including one race fix
Diffstat (limited to 'src/exchange/taler-exchange-httpd_keystate.c')
-rw-r--r--src/exchange/taler-exchange-httpd_keystate.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/exchange/taler-exchange-httpd_keystate.c b/src/exchange/taler-exchange-httpd_keystate.c
index b9de15b22..35bf52f65 100644
--- a/src/exchange/taler-exchange-httpd_keystate.c
+++ b/src/exchange/taler-exchange-httpd_keystate.c
@@ -2273,13 +2273,19 @@ read_again:
void
TEH_KS_free ()
{
+ GNUNET_assert (0 == pthread_mutex_lock (&internal_key_state_mutex));
if (NULL != internal_key_state)
{
struct TEH_KS_StateHandle *ks = internal_key_state;
internal_key_state = NULL;
+ GNUNET_assert (0 == pthread_mutex_unlock (&internal_key_state_mutex));
TEH_KS_release (ks);
}
+ else
+ {
+ GNUNET_assert (0 == pthread_mutex_unlock (&internal_key_state_mutex));
+ }
}