+/* List of duplicated classes found while loading modules. If we find
+ a class twice, we ignore it the second time. On some platforms,
+ where the order in which modules are loaded is well defined, this
+ allows you to replace a class in a shared library by linking in a
+ new implementation which is loaded in in the right order, and which
+ overrides the existing one.
+
+ Protected by __objc_runtime_mutex. */
+static cache_ptr duplicate_classes = NULL;
+
+/* Global runtime "write" mutex. Having a single mutex prevents
+ deadlocks, but reduces concurrency. To improve concurrency, some
+ groups of functions in the runtime have their own separate mutex
+ (eg, __class_table_lock in class.c); to avoid deadlocks, these
+ routines must make sure that they never acquire any other lock
+ while holding their own local lock. Ie, they should lock, execute
+ some C code that does not perform any calls to other runtime
+ functions which may potentially lock different locks, then unlock.
+ If they need to perform any calls to other runtime functions that
+ may potentially lock other locks, then they should use the global
+ __objc_runtime_mutex. */