server/repository.py
changeset 8280 17c588eca3c2
parent 8277 8b173e0a617f
child 8320 cd2d332b3063
equal deleted inserted replaced
8277:8b173e0a617f 8280:17c588eca3c2
   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)