Changeset 5492 for django/branches/gis/django/utils/synch.py
- Timestamp:
- 06/18/07 11:48:27 (2 years ago)
- Files:
-
- django/branches/gis (modified) (1 prop)
- django/branches/gis/django/utils/synch.py (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/branches/gis
- Property svnmerge-integrated changed from /django/trunk:1-4785,4796-4797,4799-4809 to /django/trunk:1-5490
django/branches/gis/django/utils/synch.py
r4265 r5492 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()
