# Copyright (C) 2015-2016 Red Hat, Inc. All rights reserved. # # This copyrighted material is made available to anyone wishing to use, # modify, copy, or redistribute it subject to the terms and conditions # of the GNU General Public License v.2. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # Try and minimize the refreshes we do. import threading from .request import RequestEntry from . import cfg from . import utils _rlock = threading.RLock() _count = 0 def handle_external_event(command): utils.log_debug("External event: '%s'" % command) event_complete() cfg.load() def event_add(params): global _rlock global _count with _rlock: if _count == 0: _count += 1 r = RequestEntry( -1, handle_external_event, params, None, None, False) cfg.worker_q.put(r) def event_complete(): global _rlock global _count with _rlock: if _count > 0: _count -= 1 return _count