equal
deleted
inserted
replaced
885 """ |
885 """ |
886 See :class:`cubicweb.dbapi.Connection.call_service` |
886 See :class:`cubicweb.dbapi.Connection.call_service` |
887 and :class:`cubicweb.server.Service` |
887 and :class:`cubicweb.server.Service` |
888 """ |
888 """ |
889 def task(): |
889 def task(): |
890 session = self._get_session(sessionid) |
890 session = self._get_session(sessionid, setcnxset=True) |
891 service = session.vreg['services'].select(regid, session, **kwargs) |
891 service = session.vreg['services'].select(regid, session, **kwargs) |
892 return service.call(session, **kwargs) |
892 try: |
|
893 return service.call(session, **kwargs) |
|
894 finally: |
|
895 session.rollback() # free cnxset |
893 if async: |
896 if async: |
894 self.info('calling service %s asynchronously', regid) |
897 self.info('calling service %s asynchronously', regid) |
895 self.threaded_task(task) |
898 self.threaded_task(task) |
896 else: |
899 else: |
897 self.info('calling service %s synchronously', regid) |
900 self.info('calling service %s synchronously', regid) |