<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://docs.yate.ro/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://docs.yate.ro/wiki/index.php?action=history&amp;feed=atom&amp;title=Mutexes_and_locking</id>
		<title>Mutexes and locking - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://docs.yate.ro/wiki/index.php?action=history&amp;feed=atom&amp;title=Mutexes_and_locking"/>
		<link rel="alternate" type="text/html" href="https://docs.yate.ro/wiki/index.php?title=Mutexes_and_locking&amp;action=history"/>
		<updated>2026-05-18T07:09:47Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.19.1</generator>

	<entry>
		<id>https://docs.yate.ro/wiki/index.php?title=Mutexes_and_locking&amp;diff=7416&amp;oldid=prev</id>
		<title>Monica at 11:45, 4 November 2013</title>
		<link rel="alternate" type="text/html" href="https://docs.yate.ro/wiki/index.php?title=Mutexes_and_locking&amp;diff=7416&amp;oldid=prev"/>
				<updated>2013-11-04T11:45:57Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 11:45, 4 November 2013&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 20:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 20:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* [[Locking Issues]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* [[Locking Issues]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* [[Important Mutexes]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* [[Important Mutexes]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Programmers]] [[Category:Locking]] [[Category:Mutexes]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Monica</name></author>	</entry>

	<entry>
		<id>https://docs.yate.ro/wiki/index.php?title=Mutexes_and_locking&amp;diff=6354&amp;oldid=prev</id>
		<title>Monica at 08:38, 13 August 2013</title>
		<link rel="alternate" type="text/html" href="https://docs.yate.ro/wiki/index.php?title=Mutexes_and_locking&amp;diff=6354&amp;oldid=prev"/>
				<updated>2013-08-13T08:38:03Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 08:38, 13 August 2013&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Yate's implementation provides classes for mutual exclusion and locking.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;===Mutex===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;===Mutex===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Monica</name></author>	</entry>

	<entry>
		<id>https://docs.yate.ro/wiki/index.php?title=Mutexes_and_locking&amp;diff=2293&amp;oldid=prev</id>
		<title>Dana at 11:00, 20 November 2012</title>
		<link rel="alternate" type="text/html" href="https://docs.yate.ro/wiki/index.php?title=Mutexes_and_locking&amp;diff=2293&amp;oldid=prev"/>
				<updated>2012-11-20T11:00:21Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 11:00, 20 November 2012&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 13:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 13:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Another helper class named '''Lock2''' allows to lock two mutexes in a similar way with Lock. Both or none of the Mutex objects are locked. An important note is that the order of locking does not depend on the order of arguments to Lock2's constructor, instead the mutexes are ordered by their address in memory. This guarantees that no deadlock occurs if two threads create a Lock2 object if they lock same mutexes but in different order.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Another helper class named '''Lock2''' allows to lock two mutexes in a similar way with Lock. Both or none of the Mutex objects are locked. An important note is that the order of locking does not depend on the order of arguments to Lock2's constructor, instead the mutexes are ordered by their address in memory. This guarantees that no deadlock occurs if two threads create a Lock2 object if they lock same mutexes but in different order.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''See also:'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''See also:'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dana</name></author>	</entry>

	<entry>
		<id>https://docs.yate.ro/wiki/index.php?title=Mutexes_and_locking&amp;diff=2209&amp;oldid=prev</id>
		<title>Dana: /* Lock2 */</title>
		<link rel="alternate" type="text/html" href="https://docs.yate.ro/wiki/index.php?title=Mutexes_and_locking&amp;diff=2209&amp;oldid=prev"/>
				<updated>2012-11-19T12:08:11Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Lock2&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 12:08, 19 November 2012&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 14:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 14:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Another helper class named '''Lock2''' allows to lock two mutexes in a similar way with Lock. Both or none of the Mutex objects are locked. An important note is that the order of locking does not depend on the order of arguments to Lock2's constructor, instead the mutexes are ordered by their address in memory. This guarantees that no deadlock occurs if two threads create a Lock2 object if they lock same mutexes but in different order.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Another helper class named '''Lock2''' allows to lock two mutexes in a similar way with Lock. Both or none of the Mutex objects are locked. An important note is that the order of locking does not depend on the order of arguments to Lock2's constructor, instead the mutexes are ordered by their address in memory. This guarantees that no deadlock occurs if two threads create a Lock2 object if they lock same mutexes but in different order.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;See also:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'''&lt;/ins&gt;See also:&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'''&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* [[Locking Issues]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* [[Locking Issues]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* [[Important Mutexes]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* [[Important Mutexes]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dana</name></author>	</entry>

	<entry>
		<id>https://docs.yate.ro/wiki/index.php?title=Mutexes_and_locking&amp;diff=2208&amp;oldid=prev</id>
		<title>Dana at 12:05, 19 November 2012</title>
		<link rel="alternate" type="text/html" href="https://docs.yate.ro/wiki/index.php?title=Mutexes_and_locking&amp;diff=2208&amp;oldid=prev"/>
				<updated>2012-11-19T12:05:52Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 12:05, 19 November 2012&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 2:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 2:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;===Mutex===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;===Mutex===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;A Mutex is an object that enforces [http://en.wikipedia.org/wiki/Mutual_exclusion mutual exclusion] in accesses to a resource from multiple &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;[&lt;/del&gt;[http://en.wikipedia.org/wiki/Thread_%28computer_science%29&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;|&lt;/del&gt;threads&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;]&lt;/del&gt;]. This is a critical component of any multi-threaded program like Yate.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;A Mutex is an object that enforces [http://en.wikipedia.org/wiki/Mutual_exclusion mutual exclusion] in accesses to a resource from multiple [http://en.wikipedia.org/wiki/Thread_%28computer_science%29 threads]. This is a critical component of any multi-threaded program like Yate.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Yate's implementation provides a class named '''Mutex'''. Each instance of this class provides one point of mutual exclusion.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Yate's implementation provides a class named '''Mutex'''. Each instance of this class provides one point of mutual exclusion.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dana</name></author>	</entry>

	<entry>
		<id>https://docs.yate.ro/wiki/index.php?title=Mutexes_and_locking&amp;diff=2207&amp;oldid=prev</id>
		<title>Dana: Created page with &quot; ===Mutex===  A Mutex is an object that enforces [http://en.wikipedia.org/wiki/Mutual_exclusion mutual exclusion] in accesses to a resource from multiple [[http://en.wikipedia...&quot;</title>
		<link rel="alternate" type="text/html" href="https://docs.yate.ro/wiki/index.php?title=Mutexes_and_locking&amp;diff=2207&amp;oldid=prev"/>
				<updated>2012-11-19T12:05:27Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot; ===Mutex===  A Mutex is an object that enforces [http://en.wikipedia.org/wiki/Mutual_exclusion mutual exclusion] in accesses to a resource from multiple [[http://en.wikipedia...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
===Mutex===&lt;br /&gt;
&lt;br /&gt;
A Mutex is an object that enforces [http://en.wikipedia.org/wiki/Mutual_exclusion mutual exclusion] in accesses to a resource from multiple [[http://en.wikipedia.org/wiki/Thread_%28computer_science%29|threads]]. This is a critical component of any multi-threaded program like Yate.&lt;br /&gt;
&lt;br /&gt;
Yate's implementation provides a class named '''Mutex'''. Each instance of this class provides one point of mutual exclusion.&lt;br /&gt;
&lt;br /&gt;
===Lock===&lt;br /&gt;
&lt;br /&gt;
A helper class named '''Lock''' is also available. Each such object holds a Mutex locked for the duration of its existence. The most common use is to create an automatic (stack allocated) Lock object that will hold the mutex locked until the code exits the block in which the Lock object exists. The compiler generated destructor then releases the mutex no matter what way the instruction block is left - it could be a ''break'', ''continue'', ''return'' or even ''goto''.&lt;br /&gt;
&lt;br /&gt;
===Lock2===&lt;br /&gt;
&lt;br /&gt;
Another helper class named '''Lock2''' allows to lock two mutexes in a similar way with Lock. Both or none of the Mutex objects are locked. An important note is that the order of locking does not depend on the order of arguments to Lock2's constructor, instead the mutexes are ordered by their address in memory. This guarantees that no deadlock occurs if two threads create a Lock2 object if they lock same mutexes but in different order.&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* [[Locking Issues]]&lt;br /&gt;
* [[Important Mutexes]]&lt;/div&gt;</summary>
		<author><name>Dana</name></author>	</entry>

	</feed>