diff options
Diffstat (limited to 'module/utils')
| -rw-r--r-- | module/utils/__init__.py | 14 | 
1 files changed, 12 insertions, 2 deletions
diff --git a/module/utils/__init__.py b/module/utils/__init__.py index 4692c59cb..8f7ed6231 100644 --- a/module/utils/__init__.py +++ b/module/utils/__init__.py @@ -125,11 +125,21 @@ def parseFileSize(string, unit=None): #returns bytes  def lock(func): -    def new(*args): +    def new(*args, **kwargs):          #print "Handler: %s args: %s" % (func,args[1:])          args[0].lock.acquire()          try: -            return func(*args) +            return func(*args, **kwargs) +        finally: +            args[0].lock.release() + +    return new + +def read_lock(func): +    def new(*args, **kwargs): +        args[0].lock.acquire(shared=True) +        try: +            return func(*args, **kwargs)          finally:              args[0].lock.release()  | 
