diff --git a/src/library.cpp b/src/library.cpp index 79ccbf044..760e3d142 100644 --- a/src/library.cpp +++ b/src/library.cpp @@ -274,11 +274,8 @@ bool Library::writeToFile(const std::string& path) const bool Library::writeBookmarksToFile(const std::string& path) const { LibXMLDumper dumper(this); - std::string xml; - { - std::lock_guard lock(m_mutex); - xml = dumper.dumpLibXMLBookmark(); - }; + // NOTE: LibXMLDumper::dumpLibXMLBookmark uses Library in a thread-safe way + const std::string xml = dumper.dumpLibXMLBookmark(); return writeTextFile(path, xml); } diff --git a/src/libxml_dumper.cpp b/src/libxml_dumper.cpp index 5a681e861..db03a2005 100644 --- a/src/libxml_dumper.cpp +++ b/src/libxml_dumper.cpp @@ -91,7 +91,7 @@ void LibXMLDumper::handleBookmark(Bookmark bookmark, pugi::xml_node root_node) { auto book_node = entry_node.append_child("book"); try { - auto book = library->getBookById(bookmark.getBookId()); + auto book = library->getBookByIdThreadSafe(bookmark.getBookId()); ADD_TEXT_ENTRY(book_node, "id", book.getId()); ADD_TEXT_ENTRY(book_node, "title", book.getTitle()); ADD_TEXT_ENTRY(book_node, "language", book.getLanguage());