+2009-02-11 Rodrigo Kumpera <rkumpera@novell.com>
+
+ * thread-safety.txt: Document the new image lock.
+
2008-12-12 Mark Probst <mark.probst@gmail.com>
* mini-porting.txt: Added some details about function descriptors
Most threads are readers.
-- synchronization between readers is not neccesary
+- synchronization between readers is not necessary
- synchronization between the writers is done using locks.
- synchronization between the readers and the creator is done by not exposing
the data to readers before it is fully constructed.
Each appdomain has a lock which protects the per-domain data structures.
-1.3.4 The locking hierarchy
+1.3.4 The image lock
+--------------------
+
+Each MonoImage has a lock which protects the per-image data structures and memory pool. This lock must only
+be held while manipulating such structures and no call to any function besides that should be made. In special,
+no other runtime lock should be acquired while holding an image lock.
+
+1.3.5 The locking hierarchy
---------------------------
It is useful to model locks by a locking hierarchy, which is a relation between locks, which is reflexive, transitive,