db/update/InotifyQueue: catch UpdateService::Enqueue() exceptions

This commit is contained in:
Max Kellermann 2018-12-28 13:47:18 +01:00
parent 2677b90244
commit 3c4ed9cbe3
2 changed files with 10 additions and 1 deletions

1
NEWS
View File

@ -1,5 +1,6 @@
ver 0.21.4 (not yet released)
* database
- inotify: fix crash bug "terminate called after throwing ..."
- upnp: implement "list ... group"
* output
- httpd: declare protocol "HTTP/1.1" instead of "ICY"

View File

@ -39,7 +39,15 @@ InotifyQueue::OnDelay() noexcept
while (!queue.empty()) {
const char *uri_utf8 = queue.front().c_str();
id = update.Enqueue(uri_utf8, false);
try {
id = update.Enqueue(uri_utf8, false);
} catch (...) {
FormatError(std::current_exception(),
"Failed to enqueue '%s'", uri_utf8);
queue.pop_front();
continue;
}
if (id == 0) {
/* retry later */
delay_event.Schedule(INOTIFY_UPDATE_DELAY);