]> git.neil.brown.name Git - susman.git/commitdiff
suspend.py: add function to create/lock the 'immediate' file
authorNeilBrown <neilb@suse.de>
Fri, 16 Mar 2012 02:12:18 +0000 (13:12 +1100)
committerNeilBrown <neilb@suse.de>
Fri, 16 Mar 2012 02:12:18 +0000 (13:12 +1100)
Signed-off-by: NeilBrown <neilb@suse.de>
suspend.py

index 48b260153af1f93bdb652ea5d8ba4b4f2074fc69..d8b236ed1c6e36b187df036431f0b1ef1a6179de 100644 (file)
@@ -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