[CalendarServer-changes] [6342] CalendarServer/branches/users/glyph/more-deferreds-6/twistedcaldav/ resource.py

source_changes at macosforge.org source_changes at macosforge.org
Wed Sep 22 21:36:14 PDT 2010


Revision: 6342
          http://trac.macosforge.org/projects/calendarserver/changeset/6342
Author:   glyph at apple.com
Date:     2010-09-22 21:36:13 -0700 (Wed, 22 Sep 2010)
Log Message:
-----------
honor potentially async commit/abort in renderHTTP

Modified Paths:
--------------
    CalendarServer/branches/users/glyph/more-deferreds-6/twistedcaldav/resource.py

Modified: CalendarServer/branches/users/glyph/more-deferreds-6/twistedcaldav/resource.py
===================================================================
--- CalendarServer/branches/users/glyph/more-deferreds-6/twistedcaldav/resource.py	2010-09-23 03:37:27 UTC (rev 6341)
+++ CalendarServer/branches/users/glyph/more-deferreds-6/twistedcaldav/resource.py	2010-09-23 04:36:13 UTC (rev 6342)
@@ -271,6 +271,7 @@
         self._transactionError = True
 
 
+    @inlineCallbacks
     def renderHTTP(self, request, transaction=None):
         """
         Override C{renderHTTP} to commit the transaction when the resource is
@@ -281,17 +282,15 @@
         @param transaction: optional transaction to use instead of associated transaction
         @type transaction: L{txdav.caldav.idav.ITransaction}
         """
-        d = maybeDeferred(super(CalDAVResource, self).renderHTTP, request)
-        def succeeded(result, transaction=None):
-            if transaction is None:
-                transaction = self._associatedTransaction
-            if transaction is not None:
-                if self._transactionError:
-                    transaction.abort()
-                else:
-                    transaction.commit()
-            return result
-        return d.addCallback(succeeded, transaction=transaction)
+        result = yield super(CalDAVResource, self).renderHTTP(request)
+        if transaction is None:
+            transaction = self._associatedTransaction
+        if transaction is not None:
+            if self._transactionError:
+                yield transaction.abort()
+            else:
+                yield transaction.commit()
+        returnValue(result)
 
 
     # Begin transitional new-store resource interface:
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20100922/6d5bd53f/attachment.html>


More information about the calendarserver-changes mailing list