From: NeilBrown Date: Fri, 16 Mar 2012 02:12:18 +0000 (+1100) Subject: suspend.py: add function to create/lock the 'immediate' file X-Git-Url: http://git.neil.brown.name/?a=commitdiff_plain;h=75643042d76b182826c9b02e701e0c2cc433cedf;p=susman.git suspend.py: add function to create/lock the 'immediate' file Signed-off-by: NeilBrown --- diff --git a/suspend.py b/suspend.py index 48b2601..d8b236e 100644 --- a/suspend.py +++ b/suspend.py @@ -45,6 +45,7 @@ class monitor: self.suspend = suspend_callback self.resume = resume_callback self.watch = lock_watcher.watch("watching", self.change) + self.immediate_fd = None def getlock(self): # lock file, protecting againt getting IOError when we get signalled. @@ -76,6 +77,19 @@ class monitor: fcntl.flock(old, fcntl.LOCK_UN) old.close() + def immediate(self, on): + if on: + if self.immediate_fd: + return + self.immediate_fd = open('/var/run/suspend/immediate','w') + fcntl.flock(self.immediate_fd, fcntl.LOCK_EX) + return + else: + if not self.immediate_fd: + return + self.immediate_fd.close() + self.immediate_fd = None + blockfd = None def block(): global blockfd