Revision 7996a135 lib/utils.py

b/lib/utils.py
1063 1063
    return ("volume group '%s' too small (%s MiB required, %d MiB found)" %
1064 1064
            (vgname, minsize, vgsize))
1065 1065
  return None
1066

  
1067

  
1068
def LockedMethod(fn):
1069
  """Synchronized object access decorator.
1070

  
1071
  This decorator is intended to protect access to an object using the
1072
  object's own lock which is hardcoded to '_lock'.
1073

  
1074
  """
1075
  def wrapper(self, *args, **kwargs):
1076
    assert hasattr(self, '_lock')
1077
    lock = self._lock
1078
    lock.acquire()
1079
    try:
1080
      result = fn(self, *args, **kwargs)
1081
    finally:
1082
      lock.release()
1083
    return result
1084
  return wrapper

Also available in: Unified diff