Author: cito
Date: Sun Jan  6 11:05:32 2013
New Revision: 500

Log:
Add pseudo start event, so we know when pgnotify started. Small fixes.

Modified:
   trunk/module/pg.py

Modified: trunk/module/pg.py
==============================================================================
--- trunk/module/pg.py  Sun Jan  6 10:44:44 2013        (r499)
+++ trunk/module/pg.py  Sun Jan  6 11:05:32 2013        (r500)
@@ -145,9 +145,12 @@
 
         self.pgconn = pgconn
         self.event = event
+        self.start = 'start_%s' % event
         self.stop = 'stop_%s' % event
         self.callback = callback
-        self.arg_dict = arg_dict or {}
+        if arg_dict is None:
+            arg_dict = {}
+        self.arg_dict = arg_dict
         self.timeout = timeout
 
     def __del__(self):
@@ -171,16 +174,16 @@
 
         self.pgconn.query('listen "%s"' % self.event)
         self.pgconn.query('listen "%s"' % self.stop)
+        self.arg_dict['event'] = self.start
         _ilist = [self.pgconn.fileno()]
 
-        while 1:
+        while True:
             ilist, _olist, _elist = select.select(_ilist, [], [], self.timeout)
-            if ilist == []:
-                # We timed out.
+            if ilist == []:  # we timed out
                 self.pgconn.query('unlisten "%s"' % self.event)
                 self.pgconn.query('unlisten "%s"' % self.stop)
                 self.callback(None)
-                return
+                break
             else:
                 notice = self.pgconn.getnotify()
                 if notice is None:
@@ -189,17 +192,17 @@
                 if event in (self.event, self.stop):
                     self.arg_dict['pid'] = pid
                     self.arg_dict['event'] = event
-                    self.arg_dict['extra'] = event
+                    self.arg_dict['extra'] = extra
                     self.callback(self.arg_dict)
                     if event == self.stop:
                         self.pgconn.query('unlisten "%s"' % self.event)
                         self.pgconn.query('unlisten "%s"' % self.stop)
-                        return
+                        break
                 else:
                     self.pgconn.query('unlisten "%s"' % self.event)
                     self.pgconn.query('unlisten "%s"' % self.stop)
                     raise _db_error(
-                        'listening for ("%s", "%s") but notified of "%s"'
+                        'listening for "%s" and "%s", but notified of "%s"'
                         % (self.event, self.stop, event))
 
 
_______________________________________________
PyGreSQL mailing list
[email protected]
https://mail.vex.net/mailman/listinfo.cgi/pygresql

Reply via email to