mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-22 17:35:59 +03:00
46 lines
1001 B
Python
46 lines
1001 B
Python
# 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 <http://www.gnu.org/licenses/>.
|
|
|
|
# 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
|