From 455ab662e2a957b187eaffad0683c7039e533598 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 23 Nov 2015 20:38:01 +0530 Subject: [PATCH] ... --- src/calibre/srv/metadata.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/calibre/srv/metadata.py b/src/calibre/srv/metadata.py index 76550e1183..72250d3558 100644 --- a/src/calibre/srv/metadata.py +++ b/src/calibre/srv/metadata.py @@ -9,6 +9,7 @@ from copy import copy from collections import namedtuple from datetime import datetime, time from functools import partial +from threading import Lock from calibre.constants import config_dir from calibre.db.categories import Tag @@ -112,15 +113,18 @@ class GroupedSearchTerms(object): return self.hash _icon_map = None +_icon_map_lock = Lock() + def icon_map(): global _icon_map - if _icon_map is None: - _icon_map = category_icon_map.copy() - custom_icons = JSONConfig('gui').get('tags_browser_category_icons', {}) - for k, v in custom_icons.iteritems(): - if os.access(os.path.join(config_dir, 'tb_icons', v), os.R_OK): - _icon_map[k] = '_' + v - return _icon_map + with _icon_map_lock: + if _icon_map is None: + _icon_map = category_icon_map.copy() + custom_icons = JSONConfig('gui').get('tags_browser_category_icons', {}) + for k, v in custom_icons.iteritems(): + if os.access(os.path.join(config_dir, 'tb_icons', v), os.R_OK): + _icon_map[k] = '_' + v + return _icon_map def categories_settings(query, db): dont_collapse = frozenset(query.get('dont_collapse', '').split(','))