Changeset 5068
- Timestamp:
- 04/25/07 02:25:22 (2 years ago)
- Files:
-
- django/trunk/django/utils/cache.py (modified) (1 diff)
- django/trunk/django/utils/datastructures.py (modified) (2 diffs)
- django/trunk/django/utils/synch.py (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/trunk/django/utils/cache.py
r4265 r5068 87 87 def add_never_cache_headers(response): 88 88 """ 89 Add headers to a response to indicate that 89 Add headers to a response to indicate that 90 90 a page should never be cached. 91 91 """ django/trunk/django/utils/datastructures.py
r5060 r5068 17 17 def __contains__(self, key): 18 18 return self.has_key(key) 19 20 def __copy__(self): 21 return self.__class__(*self.dicts) 19 20 def __copy__(self): 21 return self.__class__(*self.dicts) 22 22 23 23 def get(self, key, default=None): … … 46 46 return True 47 47 return False 48 49 def copy(self): 50 """ returns a copy of this object""" 48 49 def copy(self): 50 """ returns a copy of this object""" 51 51 return self.__copy__() 52 52 django/trunk/django/utils/synch.py
r4265 r5068 1 1 """ 2 2 Synchronization primitives: 3 3 4 4 - reader-writer lock (preference to writers) 5 5 … … 15 15 """ 16 16 Classic implementation of reader-writer lock with preference to writers. 17 17 18 18 Readers can access a resource simultaneously. 19 19 Writers get an exclusive access. 20 20 21 21 API is self-descriptive: 22 22 reader_enters() … … 25 25 writer_leaves() 26 26 """ 27 28 27 def __init__(self): 29 28 self.mutex = threading.RLock() … … 34 33 self.waiting_readers = 0 35 34 self.waiting_writers = 0 36 35 37 36 def reader_enters(self): 38 37 self.mutex.acquire() … … 46 45 self.mutex.release() 47 46 self.can_read.acquire() 48 47 49 48 def reader_leaves(self): 50 49 self.mutex.acquire() … … 57 56 finally: 58 57 self.mutex.release() 59 58 60 59 def writer_enters(self): 61 60 self.mutex.acquire() … … 69 68 self.mutex.release() 70 69 self.can_write.acquire() 71 70 72 71 def writer_leaves(self): 73 72 self.mutex.acquire()
