summaryrefslogtreecommitdiff
path: root/src/libstrongswan/processing
diff options
context:
space:
mode:
authorYves-Alexis Perez <corsac@corsac.net>2017-11-21 10:22:31 +0100
committerYves-Alexis Perez <corsac@corsac.net>2017-11-21 10:22:31 +0100
commite1d78dc2faaa06e7c3f71ef674a71e4de2f0758e (patch)
treeae0c8b5f4cd8289d0797882ea18969f33ea59a1e /src/libstrongswan/processing
parent11d6b62db969bdd808d0f56706cb18f113927a31 (diff)
downloadvyos-strongswan-e1d78dc2faaa06e7c3f71ef674a71e4de2f0758e.tar.gz
vyos-strongswan-e1d78dc2faaa06e7c3f71ef674a71e4de2f0758e.zip
New upstream version 5.6.1
Diffstat (limited to 'src/libstrongswan/processing')
-rw-r--r--src/libstrongswan/processing/watcher.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/libstrongswan/processing/watcher.c b/src/libstrongswan/processing/watcher.c
index df6066b19..4466e91eb 100644
--- a/src/libstrongswan/processing/watcher.c
+++ b/src/libstrongswan/processing/watcher.c
@@ -513,6 +513,7 @@ METHOD(watcher_t, remove_, void,
private_watcher_t *this, int fd)
{
entry_t *entry, *prev = NULL;
+ bool found = FALSE;
this->mutex->lock(this->mutex);
while (TRUE)
@@ -530,6 +531,7 @@ METHOD(watcher_t, remove_, void,
break;
}
entry = remove_entry(this, entry, prev);
+ found = TRUE;
continue;
}
prev = entry;
@@ -541,8 +543,10 @@ METHOD(watcher_t, remove_, void,
}
this->condvar->wait(this->condvar, this->mutex);
}
-
- update(this);
+ if (found)
+ {
+ update(this);
+ }
this->mutex->unlock(this->mutex);
}