|
Home Resources Products
Developers |
Main • ImportantMutexes
Resources -> Documentation -> Important MutexesIn the code of Yate there are some noteworthy mutexes that have program-wide implications. RefObject::refMutex() (singleton, public)This is the most important mutex in Yate, it locks RefObject derived objects while their reference counter is modified. It is acquired and released billions of times in any Yate run. The code executed with this mutex acquired is strictly limited and the actual object destruction (when the reference counter dropped to zero) is performed with this mutex released. DataEndpoint::commonMutex() (singleton, public)This mutex protects data endpoint while their source and consumers are connected or disconnected. This makes sure that operations changing the data sources or consumers of data endpoints occur atomically. CallEndpoint::commonMutex() (singleton, public)Call endpoint connect and disconnect operations are protected by this mutex. Please note that during the connect() or disconnect() methods usually there will be one or more calls that will need to acquire the DataEndpoint mutex. Module (itself, public)The module (and derived Driver) class is derived from several classes including Mutex. Each module uses itself to perform atomic update operations. DataSource::mutex() (public)Each DataSource has a mutex that is acquired while accessing its Consumer list. DataTranslator (singleton, hidden)This mutex protects the list of translator factories while it's used or updated. MessageDispatcher (hidden)The list holding the installed message handlers is protected against changes by this mutex while it's being iterated. Usually the only instance of dispatcher is the derived Engine singleton object. |
3 May 2010: 8 March 2010: 6-7 February 2010: 2 Nov 2009: 6 Aug 2008: 4 Aug 2008: 10 Jul 2008: Feb 2008: 21 Jan 2008: 3 September: 14 August: 16 April: 25 September: 25 September: 11 July 2006: 10 July 2006: June 1st 2006: |