Slide 22
Slide 22 text
Motor
internals:
wrapper
class MotorCollection(object):
def insert(self, *args, **kwargs):
callback = kwargs['callback']
del kwargs['callback']
kwargs['safe'] = True
def call_insert():
# Runs on child greenlet
result, error = None, None
try:
sync_insert = self.sync_collection.insert
result = sync_insert(*args, **kwargs)
except Exception, e:
error = e
# Schedule the callback to be run on the main greenlet
tornado.ioloop.IOLoop.instance().add_callback(
lambda: callback(result, error)
)
# Start child greenlet
1
2
3
6
8