Changeset 723:3b5177cf4780 in hatta-dev


Ignore:
Timestamp:
01/10/10 20:13:06 (2 years ago)
Author:
Radomir Dopieralski <devel@…>
Branch:
default
Message:

make WikiStorage thread-safe

File:
1 edited

Legend:

Unmodified
Added
Removed
  • hatta.py

    r722 r723  
    322322            create = False 
    323323        self.repo_prefix = self.path[len(self.repo_path):].strip('/') 
    324         self.repo = mercurial.hg.repository(self.ui, self.repo_path, 
    325                                             create=create) 
     324        self._repos = {} 
     325        # Create the repository if needed. 
     326        mercurial.hg.repository(self.ui, self.repo_path, create=create) 
    326327 
    327328    def reopen(self): 
    328329        """Close and reopen the repo, to make sure we are up to date.""" 
    329330 
    330         self.repo = mercurial.hg.repository(self.ui, self.repo_path) 
    331  
     331        #self.repo = mercurial.hg.repository(self.ui, self.repo_path) 
     332        self._repos = {} 
     333 
     334    @property 
     335    def repo(self): 
     336        """Keep one open repository per thread.""" 
     337 
     338        thread_id = thread.get_ident() 
     339        try: 
     340            return self._repos[thread_id] 
     341        except KeyError: 
     342            repo = mercurial.hg.repository(self.ui, self.repo_path) 
     343            self._repos[thread_id] = repo 
     344            return repo 
    332345 
    333346    def _find_repo_path(self, path): 
Note: See TracChangeset for help on using the changeset viewer.