[Twisted-Python] help with Deferreds

Sergey Magafurov smagafurov at naumen.ru
Thu Aug 26 06:31:13 EDT 2010


> def getCachedResult(cache, key):
>
>      def release(result, item):
>          item.release()
>          return result
>
>      def renew(data):
>          return renew(data)
>
>      def notFound(fail):
>          fail.trap(NotFound)
>
>      def checkObsolete(item):
>          if item.obsolete():
>              return None
>          else:
>              d = item.read()
>              d.addBoth(release, item)
>              d.addCallback(renew)
>              return d
>
>      d = cache.open(key)
>      d.addCallbacks(checkObsolete, notFound)
>      return d
>    
Hi Terry
If item.obsolete() raise exception item remain not released.
Additional try ... except ... safe us but looks ugly



More information about the Twisted-Python mailing list