]> git.neil.brown.name Git - plato.git/commitdiff
gsmd: fix suspend blocking for 'sms_recv'.
authorNeilBrown <neilb@suse.de>
Fri, 5 Dec 2014 00:10:43 +0000 (11:10 +1100)
committerNeilBrown <neilb@suse.de>
Fri, 5 Dec 2014 00:10:43 +0000 (11:10 +1100)
We shouldn't block suspend while waiting for a SIM card number.

Only block during an extended "get list of sms messsages" sequence.

Signed-off-by: NeilBrown <neil@brown.name>
gsm/gsmd2.py

index f9b20366877412fa1f3c75c88aef4b7921f8275e..2e8092681669a33359d6d5f554c9e3de005a3681 100644 (file)
@@ -1349,14 +1349,12 @@ class sms_recv(Engine):
             self.must_check('')
 
     def must_check(self, line):
-        self.block()
         self.check_needed = True
         self.retry(100)
         return True
 
     def set_on(self, state):
         if state and self.check_needed:
-            self.block()
             self.retry(100)
         if not state:
             self.unblock()
@@ -1382,6 +1380,7 @@ class sms_recv(Engine):
         if m and m.group(1) == '3':
             self.retry(2000)
             return False
+        self.block()
         at_queue('+CMGL=4', self.one_line, 40000)
         return False
 
@@ -1406,6 +1405,7 @@ class sms_recv(Engine):
         if not line or line[:5] == 'ERROR' or line[:10] == '+CMS ERROR':
             self.check_needed = True
             self.retry(60000)
+            self.unblock()
             return False
         if self.expecting_line:
             self.expecting_line = False