server/session.py
branchstable
changeset 2055 e4283fc56873
parent 2054 277e8d3b1154
child 2063 fe4278b50388
equal deleted inserted replaced
2054:277e8d3b1154 2055:e4283fc56873
   172         """
   172         """
   173         # pool may be none if no operation has been done since last commit
   173         # pool may be none if no operation has been done since last commit
   174         # or rollback
   174         # or rollback
   175         if self.pool is not None and self.mode == 'read':
   175         if self.pool is not None and self.mode == 'read':
   176             # even in read mode, we must release the current transaction
   176             # even in read mode, we must release the current transaction
       
   177             pool = self.pool
   177             self._threads_in_transaction.remove(threading.currentThread())
   178             self._threads_in_transaction.remove(threading.currentThread())
   178             self.pool.pool_reset(self)
   179             pool.pool_reset(self)
   179             self._threaddata.pool = None
   180             self._threaddata.pool = None
   180             # free pool once everything is done to avoid race-condition
   181             # free pool once everything is done to avoid race-condition
   181             self.repo._free_pool(self.pool)
   182             self.repo._free_pool(pool)
   182 
   183 
   183     def system_sql(self, sql, args=None):
   184     def system_sql(self, sql, args=None):
   184         """return a sql cursor on the system database"""
   185         """return a sql cursor on the system database"""
   185         if not sql.split(None, 1)[0].upper() == 'SELECT':
   186         if not sql.split(None, 1)[0].upper() == 'SELECT':
   186             self.mode = 'write'
   187             self.mode = 'write'