var searchIndex = {}; searchIndex["shared_mutex"] = {"doc":"# shared-mutex","items":[[3,"RawSharedMutex","shared_mutex","A raw lock providing both shared read locks and exclusive write locks.",null,null],[3,"SharedMutex","","A lock providing both shared read locks and exclusive write locks.",null,null],[3,"SharedMutexReadGuard","","A shared read guard on a SharedMutex.",null,null],[3,"SharedMutexWriteGuard","","An exclusive write guard on a SharedMutex.",null,null],[3,"MappedSharedMutexReadGuard","","A read guard to a sub-borrow of an original SharedMutexReadGuard.",null,null],[3,"MappedSharedMutexWriteGuard","","A write guard to a sub-borrow of an original `SharedMutexWriteGuard`.",null,null],[0,"poison","","Provides ergonomic poisoning primitives for building poisonable structures.",null,null],[3,"Poison","shared_mutex::poison","A typed poisoning wrapper.",null,null],[3,"PoisonGuard","","A poison guard on an associated Poison.",null,null],[3,"RawPoison","","A raw poisoning primitive, can be used to build automatically poisoning structures.",null,null],[3,"RawPoisonGuard","","A guard on a RawPoison.",null,null],[5,"map_result","","A simple, useful combinator for dealing with LockResult.",null,{"inputs":[{"name":"lockresult"},{"name":"f"}],"output":{"name":"lockresult"}}],[11,"fmt","","",0,null],[11,"fmt","","",1,null],[11,"new","","Create a new Poison in the non-poisoned state.",0,{"inputs":[{"name":"t"}],"output":{"name":"self"}}],[11,"poisoned","","Create a new Poison that is already poisoned.",0,{"inputs":[{"name":"t"}],"output":{"name":"self"}}],[11,"into_inner","","Extract the data from the Poison.",0,null],[11,"lock","","Get a poison lock on this poison.",0,null],[11,"get","","Get an immutable reference to the data in this poison.",0,null],[11,"get_mut","","Get a mutable reference without a guard.",0,null],[11,"get","","Get an immutable reference to the data.",1,null],[11,"get_mut","","Get a mutable reference to the data.",1,null],[11,"into_mut","","Get a reference that escapes the guard.",1,null],[11,"into_raw","","Get the raw poison guard.",1,null],[11,"fmt","","",2,null],[11,"fmt","","",3,null],[11,"new","","Create a new RawPoison in a non-poisoned state.",2,{"inputs":[],"output":{"name":"rawpoison"}}],[11,"poisoned","","Create a new RawPoison which is already poisoned.",2,{"inputs":[],"output":{"name":"rawpoison"}}],[11,"lock","","Get a poison lock on this RawPoison.",2,null],[11,"drop","","",3,null],[0,"monitor","shared_mutex","A monitor convenience type that couples a SharedMutex and a Condvar.",null,null],[3,"Monitor","shared_mutex::monitor","A convenience wrapper around a SharedMutex and a Condvar.",null,null],[3,"MonitorReadGuard","","A shared read guard to the data in a Monitor.",null,null],[3,"MonitorWriteGuard","","An exclusive write guard to the data in a Monitor.",null,null],[11,"new","","Create a new Monitor.",4,{"inputs":[{"name":"t"}],"output":{"name":"monitor"}}],[11,"read","","Acquire a shared read lock on the monitor.",4,null],[11,"write","","Acquire an exclusive write lock on the monitor.",4,null],[11,"notify_one","","Notify one thread which is waiting on the monitor.",4,null],[11,"notify_all","","Notify all threads which are waiting on the monitor.",4,null],[11,"wait_for_read","","Wait for a notification on the monitor, then resume with another read guard.",5,null],[11,"wait_for_write","","Wait for a notification on the monitor, then resume with a write guard.",5,null],[11,"notify_one","","Notify a thread waiting on the monitor.",5,null],[11,"notify_all","","Notify all threads waiting on the monitor.",5,null],[11,"wait_for_read","","Wait for a notification on the monitor, then resume with another read guard.",6,null],[11,"wait_for_write","","Wait for a notification on the monitor, then resume with another write guard.",6,null],[11,"notify_one","","Notify a thread waiting on the monitor.",6,null],[11,"notify_all","","Notify all threads waiting on the monitor.",6,null],[11,"deref","","",5,null],[11,"deref","","",6,null],[11,"deref_mut","","",6,null],[11,"into","","",6,null],[11,"into","","",5,null],[11,"as_ref","","",4,null],[11,"as_mut","","",4,null],[11,"into","","",4,null],[11,"fmt","","",4,null],[11,"fmt","","",5,null],[11,"fmt","","",6,null],[11,"new","shared_mutex","Create a new RawSharedMutex",7,{"inputs":[],"output":{"name":"rawsharedmutex"}}],[11,"is","","Checks if this mutex and the other are the same mutex.",7,null],[11,"read","","Acquire a shared read lock.",7,null],[11,"try_read","","Attempt to acquire a shared read lock without blocking.",7,null],[11,"write","","Acquire an exclusive write lock.",7,null],[11,"try_write","","Attempt to acquire an exclusive write lock without blocking.",7,null],[11,"unlock_read","","Unlock a previously acquired read lock.",7,null],[11,"unlock_write","","Unlock a previously acquired write lock.",7,null],[11,"wait_from_read_to_write","","Wait on the given condition variable, resuming with a write lock.",7,null],[11,"wait_from_read_to_read","","Wait on the given condition variable, resuming with another read lock.",7,null],[11,"wait_from_write_to_read","","Wait on the given condition variable, resuming with a read lock.",7,null],[11,"wait_from_write_to_write","","Wait on the given condition variable, resuming with another write lock.",7,null],[11,"new","","Create a new SharedMutex protecting the given value.",8,{"inputs":[{"name":"t"}],"output":{"name":"self"}}],[11,"into_inner","","Extract the data from the lock and destroy the lock.",8,null],[11,"write","","Acquire an exclusive Write lock on the data.",8,null],[11,"read","","Acquire a shared Read lock on the data.",8,null],[11,"try_read","","Attempt to acquire a shared Read lock on the data.",8,null],[11,"try_write","","Attempt to acquire an exclusive Write lock on the data.",8,null],[11,"get_mut","","Get a mutable reference to the data without locking.",8,null],[11,"deref","","",9,null],[11,"deref","","",10,null],[11,"deref_mut","","",10,null],[11,"into_mapped","","Turn this guard into a guard which can be mapped to a sub-borrow.",9,null],[11,"wait_for_write","","Wait on the given condition variable, and resume with a write lock.",9,null],[11,"wait_for_read","","Wait on the given condition variable, and resume with another read lock.",9,null],[11,"into_mapped","","Turn this guard into a guard which can be mapped to a sub-borrow.",10,null],[11,"wait_for_write","","Wait on the given condition variable, and resume with another write lock.",10,null],[11,"wait_for_read","","Wait on the given condition variable, and resume with a read lock.",10,null],[11,"drop","","",9,null],[11,"drop","","",10,null],[11,"map","","Transform this guard into a sub-borrow of the original data.",11,null],[11,"option_map","","Conditionally transform this guard into a sub-borrow of the original data.",11,null],[11,"result_map","","Conditionally transform this guard into a sub-borrow of the original data.",11,null],[11,"recover","","Recover the original guard for waiting.",11,null],[11,"map","","Transform this guard into a sub-borrow of the original data.",12,null],[11,"option_map","","Conditionally transform this guard into a sub-borrow of the original data.",12,null],[11,"result_map","","Conditionally transform this guard into a sub-borrow of the original data.",12,null],[11,"recover","","Recover the original guard for waiting.",12,null],[11,"deref","","",11,null],[11,"deref","","",12,null],[11,"deref_mut","","",12,null],[11,"drop","","",11,null],[11,"drop","","",12,null],[11,"fmt","","",8,null],[11,"fmt","","",9,null],[11,"fmt","","",10,null],[11,"fmt","","",11,null],[11,"fmt","","",12,null]],"paths":[[3,"Poison"],[3,"PoisonGuard"],[3,"RawPoison"],[3,"RawPoisonGuard"],[3,"Monitor"],[3,"MonitorReadGuard"],[3,"MonitorWriteGuard"],[3,"RawSharedMutex"],[3,"SharedMutex"],[3,"SharedMutexReadGuard"],[3,"SharedMutexWriteGuard"],[3,"MappedSharedMutexReadGuard"],[3,"MappedSharedMutexWriteGuard"]]}; initSearch(searchIndex);