iixr

Changeset

94:2b56cb8c1947
2011-02-12 Paul Boddie raw files shortlog changelog graph Removed unnecessary recursion when flushing records/caches.
iixr/files.py (file)
     1.1 --- a/iixr/files.py	Fri Feb 11 01:46:08 2011 +0100
     1.2 +++ b/iixr/files.py	Sat Feb 12 01:02:40 2011 +0100
     1.3 @@ -24,7 +24,7 @@
     1.4  
     1.5  # Constants.
     1.6  
     1.7 -CACHE_SIZE = 1000
     1.8 +CACHE_SIZE = 100000
     1.9  
    1.10  # Classes.
    1.11  
    1.12 @@ -80,7 +80,7 @@
    1.13              self.cache += self.record
    1.14              self.written += length_size + length
    1.15              self.record = array('B')
    1.16 -            self.flush()
    1.17 +            self.flush_cache()
    1.18  
    1.19      def write_number(self, number):
    1.20  
    1.21 @@ -145,8 +145,11 @@
    1.22          self.write_sequence_values(values, size)
    1.23  
    1.24      def flush(self, force=0):
    1.25 +        self.end_record()
    1.26 +        self.flush_cache(force)
    1.27 +
    1.28 +    def flush_cache(self, force=0):
    1.29          if self.f is not None:
    1.30 -            self.end_record()
    1.31              if force or len(self.cache) > CACHE_SIZE:
    1.32                  self.cache.tofile(self.f)
    1.33                  self.cache = array('B')