diff -r 7d0c1fa97123 -r 0b265608b6ce iro/controller/task.py --- a/iro/controller/task.py Fri Feb 10 20:47:57 2012 +0100 +++ b/iro/controller/task.py Mon Feb 13 15:38:29 2012 +0100 @@ -1,5 +1,5 @@ from functools import partial -from twisted.internet import defer + from twisted.internet.defer import inlineCallbacks, returnValue from ..error import NoRoute, RejectRecipient @@ -27,7 +27,7 @@ def _run(self): for offer in self.job.offers: try: - ret = yield (offers[offer].send(self.recipient,self.job.message)) + ret = yield offers[offer].send(self.recipient,self.job.message) returnValue(ret) except RejectRecipient: continue @@ -35,13 +35,11 @@ raise NoRoute() +@inlineCallbacks def createJob(user,recipients, msg, offers, info=None): - d = defer.maybeDeferred(exJobs.create,user, recipients, msg, offers, info) - def _(job): - for r in recipients: - task = Task(r,job) - job.addTask(task) - task.start() - return job - d.addCallback(_) - return d + job = yield exJobs.create(user, recipients, msg, offers, info) + for r in recipients: + task = Task(r,job) + job.addTask(task) + task.start() + returnValue(job)