<html xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"
xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
<meta name=ProgId content=Word.Document>
<meta name=Generator content="Microsoft Word 15">
<meta name=Originator content="Microsoft Word 15">
<link rel=File-List href="timed_shared_lock_v7_files/filelist.xml">
<title>Shared Timed Mutex</title>
<!--[if gte mso 9]><xml>
 <o:DocumentProperties>
  <o:Author>Herb Sutter;Gor Nishanov {hsutter,gorn}@microsoft.com</o:Author>
  <o:LastAuthor>Gor Nishanov</o:LastAuthor>
  <o:Revision>5</o:Revision>
  <o:TotalTime>16</o:TotalTime>
  <o:Created>2014-01-20T05:20:00Z</o:Created>
  <o:LastSaved>2014-01-20T05:23:00Z</o:LastSaved>
  <o:Pages>1</o:Pages>
  <o:Words>710</o:Words>
  <o:Characters>4049</o:Characters>
  <o:Lines>33</o:Lines>
  <o:Paragraphs>9</o:Paragraphs>
  <o:CharactersWithSpaces>4750</o:CharactersWithSpaces>
  <o:Version>15.00</o:Version>
 </o:DocumentProperties>
 <o:OfficeDocumentSettings>
  <o:RelyOnVML/>
  <o:AllowPNG/>
 </o:OfficeDocumentSettings>
</xml><![endif]-->
<link rel=dataStoreItem href="timed_shared_lock_v7_files/item0006.xml"
target="timed_shared_lock_v7_files/props007.xml">
<link rel=themeData href="timed_shared_lock_v7_files/themedata.thmx">
<link rel=colorSchemeMapping
href="timed_shared_lock_v7_files/colorschememapping.xml">
<!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:TrackMoves>false</w:TrackMoves>
  <w:TrackFormatting/>
  <w:PunctuationKerning/>
  <w:DrawingGridHorizontalSpacing>18 pt</w:DrawingGridHorizontalSpacing>
  <w:DrawingGridVerticalSpacing>18 pt</w:DrawingGridVerticalSpacing>
  <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery>
  <w:DisplayVerticalDrawingGridEvery>0</w:DisplayVerticalDrawingGridEvery>
  <w:ValidateAgainstSchemas/>
  <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
  <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
  <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
  <w:DoNotPromoteQF/>
  <w:LidThemeOther>EN-US</w:LidThemeOther>
  <w:LidThemeAsian>X-NONE</w:LidThemeAsian>
  <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
  <w:Compatibility>
   <w:BreakWrappedTables/>
   <w:SnapToGridInCell/>
   <w:WrapTextWithPunct/>
   <w:UseAsianBreakRules/>
   <w:DontGrowAutofit/>
   <w:SplitPgBreakAndParaMark/>
   <w:EnableOpenTypeKerning/>
   <w:DontFlipMirrorIndents/>
   <w:OverrideTableStyleHps/>
  </w:Compatibility>
  <w:DoNotOptimizeForBrowser/>
  <m:mathPr>
   <m:mathFont m:val="Cambria Math"/>
   <m:brkBin m:val="before"/>
   <m:brkBinSub m:val="&#45;-"/>
   <m:smallFrac m:val="off"/>
   <m:dispDef m:val="off"/>
   <m:lMargin m:val="0"/>
   <m:rMargin m:val="0"/>
   <m:defJc m:val="centerGroup"/>
   <m:wrapRight/>
   <m:intLim m:val="subSup"/>
   <m:naryLim m:val="subSup"/>
  </m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="false"
  DefSemiHidden="false" DefQFormat="false" LatentStyleCount="371">
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="index 1"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="index 7"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="index 8"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="index 9"/>
  <w:LsdException Locked="false" Priority="39" SemiHidden="true"
   UnhideWhenUsed="true" Name="toc 1"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="toc 2"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="toc 3"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="toc 4"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="toc 5"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="toc 6"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="toc 7"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="toc 8"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="toc 9"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Normal Indent"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="footnote text"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="annotation text"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="header"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="footer"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="index heading"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="caption"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="table of figures"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="envelope address"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="envelope return"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="footnote reference"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="annotation reference"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="line number"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="page number"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="endnote reference"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="endnote text"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="table of authorities"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="macro"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="toa heading"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Bullet"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Number"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List 2"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List 3"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List 4"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List 5"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Bullet 2"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Bullet 3"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Bullet 4"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Bullet 5"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Number 3"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Number 4"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Closing"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Signature"/>
  <w:LsdException Locked="false" Priority="1" SemiHidden="true"
   UnhideWhenUsed="true" Name="Default Paragraph Font"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Body Text"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Body Text Indent"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Continue"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Continue 2"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Continue 3"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Continue 4"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Continue 5"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Message Header"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Salutation"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Date"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Body Text First Indent"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Body Text First Indent 2"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Note Heading"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Body Text 2"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Body Text 3"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Body Text Indent 2"/>
  <w:LsdException Locked="false" Priority="99" Name="Hyperlink"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Document Map"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Plain Text"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="E-mail Signature"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Top of Form"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Bottom of Form"/>
  <w:LsdException Locked="false" Priority="99" SemiHidden="true"
   UnhideWhenUsed="true" Name="Normal (Web)"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Acronym"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Address"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Cite"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Code"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Definition"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Keyboard"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Preformatted"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Sample"/>
  <w:LsdException Locked="false" Priority="99" SemiHidden="true"
   UnhideWhenUsed="true" Name="HTML Typewriter"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Variable"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Normal Table"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="annotation subject"/>
  <w:LsdException Locked="false" Priority="99" SemiHidden="true"
   UnhideWhenUsed="true" Name="No List"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Outline List 1"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Outline List 2"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Outline List 3"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Simple 1"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Simple 2"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Simple 3"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Classic 1"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Classic 2"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Classic 3"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Classic 4"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Colorful 1"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Colorful 2"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Colorful 3"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Columns 1"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Columns 2"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Columns 3"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Columns 4"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Columns 5"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Grid 1"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Grid 2"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Grid 3"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Grid 4"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Grid 5"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Grid 6"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Grid 7"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Grid 8"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table List 1"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table List 2"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table List 3"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table List 4"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table List 5"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table List 6"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table List 7"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table List 8"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table 3D effects 1"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table 3D effects 2"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table 3D effects 3"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Contemporary"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Elegant"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Professional"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Subtle 1"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Subtle 2"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Web 1"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Web 2"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Web 3"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Balloon Text"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Theme"/>
  <w:LsdException Locked="false" SemiHidden="true" Name="Placeholder Text"/>
  <w:LsdException Locked="false" SemiHidden="true" Name="Revision"/>
  <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Bibliography"/>
  <w:LsdException Locked="false" Priority="39" SemiHidden="true"
   UnhideWhenUsed="true" QFormat="true" Name="TOC Heading"/>
  <w:LsdException Locked="false" Priority="49" Name="Grid Table 4"/>
  <w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark"/>
  <w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful"/>
  <w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful"/>
  <w:LsdException Locked="false" Priority="46"
   Name="Grid Table 1 Light Accent 1"/>
  <w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 1"/>
  <w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 1"/>
  <w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 1"/>
  <w:LsdException Locked="false" Priority="51"
   Name="Grid Table 6 Colorful Accent 1"/>
  <w:LsdException Locked="false" Priority="52"
   Name="Grid Table 7 Colorful Accent 1"/>
  <w:LsdException Locked="false" Priority="46"
   Name="Grid Table 1 Light Accent 2"/>
  <w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 2"/>
  <w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 2"/>
  <w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 2"/>
  <w:LsdException Locked="false" Priority="51"
   Name="Grid Table 6 Colorful Accent 2"/>
  <w:LsdException Locked="false" Priority="52"
   Name="Grid Table 7 Colorful Accent 2"/>
  <w:LsdException Locked="false" Priority="46"
   Name="Grid Table 1 Light Accent 3"/>
  <w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 3"/>
  <w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 3"/>
  <w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 3"/>
  <w:LsdException Locked="false" Priority="51"
   Name="Grid Table 6 Colorful Accent 3"/>
  <w:LsdException Locked="false" Priority="52"
   Name="Grid Table 7 Colorful Accent 3"/>
  <w:LsdException Locked="false" Priority="46"
   Name="Grid Table 1 Light Accent 4"/>
  <w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 4"/>
  <w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 4"/>
  <w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 4"/>
  <w:LsdException Locked="false" Priority="51"
   Name="Grid Table 6 Colorful Accent 4"/>
  <w:LsdException Locked="false" Priority="52"
   Name="Grid Table 7 Colorful Accent 4"/>
  <w:LsdException Locked="false" Priority="46"
   Name="Grid Table 1 Light Accent 5"/>
  <w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 5"/>
  <w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 5"/>
  <w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 5"/>
  <w:LsdException Locked="false" Priority="51"
   Name="Grid Table 6 Colorful Accent 5"/>
  <w:LsdException Locked="false" Priority="52"
   Name="Grid Table 7 Colorful Accent 5"/>
  <w:LsdException Locked="false" Priority="46"
   Name="Grid Table 1 Light Accent 6"/>
  <w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 6"/>
  <w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 6"/>
  <w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 6"/>
  <w:LsdException Locked="false" Priority="51"
   Name="Grid Table 6 Colorful Accent 6"/>
  <w:LsdException Locked="false" Priority="52"
   Name="Grid Table 7 Colorful Accent 6"/>
  <w:LsdException Locked="false" Priority="46" Name="List Table 1 Light"/>
  <w:LsdException Locked="false" Priority="47" Name="List Table 2"/>
  <w:LsdException Locked="false" Priority="48" Name="List Table 3"/>
  <w:LsdException Locked="false" Priority="49" Name="List Table 4"/>
  <w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark"/>
  <w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful"/>
  <w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful"/>
  <w:LsdException Locked="false" Priority="46"
   Name="List Table 1 Light Accent 1"/>
  <w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 1"/>
  <w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 1"/>
  <w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 1"/>
  <w:LsdException Locked="false" Priority="51"
   Name="List Table 6 Colorful Accent 1"/>
  <w:LsdException Locked="false" Priority="52"
   Name="List Table 7 Colorful Accent 1"/>
  <w:LsdException Locked="false" Priority="46"
   Name="List Table 1 Light Accent 2"/>
  <w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 2"/>
  <w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 2"/>
  <w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 2"/>
  <w:LsdException Locked="false" Priority="51"
   Name="List Table 6 Colorful Accent 2"/>
  <w:LsdException Locked="false" Priority="52"
   Name="List Table 7 Colorful Accent 2"/>
  <w:LsdException Locked="false" Priority="46"
   Name="List Table 1 Light Accent 3"/>
  <w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 3"/>
  <w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 3"/>
  <w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 3"/>
  <w:LsdException Locked="false" Priority="51"
   Name="List Table 6 Colorful Accent 3"/>
  <w:LsdException Locked="false" Priority="52"
   Name="List Table 7 Colorful Accent 3"/>
  <w:LsdException Locked="false" Priority="46"
   Name="List Table 1 Light Accent 4"/>
  <w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 4"/>
  <w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 4"/>
  <w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 4"/>
  <w:LsdException Locked="false" Priority="51"
   Name="List Table 6 Colorful Accent 4"/>
  <w:LsdException Locked="false" Priority="52"
   Name="List Table 7 Colorful Accent 4"/>
  <w:LsdException Locked="false" Priority="46"
   Name="List Table 1 Light Accent 5"/>
  <w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 5"/>
  <w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 5"/>
  <w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 5"/>
  <w:LsdException Locked="false" Priority="51"
   Name="List Table 6 Colorful Accent 5"/>
  <w:LsdException Locked="false" Priority="52"
   Name="List Table 7 Colorful Accent 5"/>
  <w:LsdException Locked="false" Priority="46"
   Name="List Table 1 Light Accent 6"/>
  <w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 6"/>
  <w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 6"/>
  <w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 6"/>
  <w:LsdException Locked="false" Priority="51"
   Name="List Table 6 Colorful Accent 6"/>
  <w:LsdException Locked="false" Priority="52"
   Name="List Table 7 Colorful Accent 6"/>
 </w:LatentStyles>
</xml><![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:roman;
	mso-font-pitch:variable;
	mso-font-signature:-536870145 1107305727 0 0 415 0;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:-520092929 1073786111 9 0 415 0;}
@font-face
	{font-family:Cambria;
	panose-1:2 4 5 3 5 4 6 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:roman;
	mso-font-pitch:variable;
	mso-font-signature:-536870145 1073743103 0 0 415 0;}
@font-face
	{font-family:Consolas;
	panose-1:2 11 6 9 2 2 4 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:modern;
	mso-font-pitch:fixed;
	mso-font-signature:-520092929 1073806591 9 0 415 0;}
@font-face
	{font-family:LMRoman10-Bold;
	panose-1:0 0 0 0 0 0 0 0 0 0;
	mso-font-charset:0;
	mso-generic-font-family:auto;
	mso-font-format:other;
	mso-font-pitch:auto;
	mso-font-signature:3 0 0 0 1 0;}
@font-face
	{font-family:LMMonoLt10-Bold;
	panose-1:0 0 0 0 0 0 0 0 0 0;
	mso-font-charset:0;
	mso-generic-font-family:auto;
	mso-font-format:other;
	mso-font-pitch:auto;
	mso-font-signature:3 0 0 0 1 0;}
@font-face
	{font-family:"Lucida Console";
	panose-1:2 11 6 9 4 5 4 2 2 4;
	mso-font-charset:0;
	mso-generic-font-family:modern;
	mso-font-pitch:fixed;
	mso-font-signature:-2147482993 6144 0 0 31 0;}
@font-face
	{font-family:LMMono9-Regular;
	panose-1:0 0 0 0 0 0 0 0 0 0;
	mso-font-charset:0;
	mso-generic-font-family:auto;
	mso-font-format:other;
	mso-font-pitch:auto;
	mso-font-signature:3 0 0 0 1 0;}
@font-face
	{font-family:LMRoman7-Regular;
	panose-1:0 0 0 0 0 0 0 0 0 0;
	mso-font-charset:0;
	mso-generic-font-family:auto;
	mso-font-format:other;
	mso-font-pitch:auto;
	mso-font-signature:3 0 0 0 1 0;}
@font-face
	{font-family:LMRoman10-Regular;
	panose-1:0 0 0 0 0 0 0 0 0 0;
	mso-font-charset:0;
	mso-generic-font-family:auto;
	mso-font-format:other;
	mso-font-pitch:auto;
	mso-font-signature:3 0 0 0 1 0;}
@font-face
	{font-family:LMRoman10-Italic;
	panose-1:0 0 0 0 0 0 0 0 0 0;
	mso-font-charset:0;
	mso-generic-font-family:auto;
	mso-font-format:other;
	mso-font-pitch:auto;
	mso-font-signature:3 0 0 0 1 0;}
@font-face
	{font-family:LMMono10-Regular;
	panose-1:0 0 0 0 0 0 0 0 0 0;
	mso-font-charset:0;
	mso-generic-font-family:auto;
	mso-font-format:other;
	mso-font-pitch:auto;
	mso-font-signature:3 0 0 0 1 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-parent:"";
	margin:0in;
	margin-bottom:.0001pt;
	text-align:left;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Cambria","serif";
	mso-ascii-font-family:Cambria;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Cambria;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Cambria;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
h1
	{mso-style-priority:9;
	mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-next:Normal;
	margin-top:24.0pt;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:0in;
	margin-bottom:.0001pt;
	text-align:left;
	mso-pagination:widow-orphan lines-together;
	page-break-after:avoid;
	mso-outline-level:1;
	font-size:18.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:major-latin;
	mso-fareast-font-family:"Times New Roman";
	mso-fareast-theme-font:major-fareast;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:major-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:major-bidi;
	color:#345A8A;
	mso-themecolor:accent1;
	mso-themeshade:181;
	mso-font-kerning:0pt;
	font-weight:bold;}
h2
	{mso-style-priority:9;
	mso-style-qformat:yes;
	mso-style-next:Normal;
	margin-top:10.0pt;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:0in;
	margin-bottom:.0001pt;
	text-align:left;
	mso-pagination:widow-orphan lines-together;
	page-break-after:avoid;
	mso-outline-level:2;
	font-size:16.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:major-latin;
	mso-fareast-font-family:"Times New Roman";
	mso-fareast-theme-font:major-fareast;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:major-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:major-bidi;
	color:#4F81BD;
	mso-themecolor:accent1;
	font-weight:bold;}
h3
	{mso-style-priority:9;
	mso-style-qformat:yes;
	mso-style-next:Normal;
	margin-top:10.0pt;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:0in;
	margin-bottom:.0001pt;
	text-align:left;
	mso-pagination:widow-orphan lines-together;
	page-break-after:avoid;
	mso-outline-level:3;
	font-size:14.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:major-latin;
	mso-fareast-font-family:"Times New Roman";
	mso-fareast-theme-font:major-fareast;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:major-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:major-bidi;
	color:#4F81BD;
	mso-themecolor:accent1;
	font-weight:bold;}
h4
	{mso-style-priority:9;
	mso-style-qformat:yes;
	mso-style-next:Normal;
	margin-top:10.0pt;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:0in;
	margin-bottom:.0001pt;
	text-align:left;
	mso-pagination:widow-orphan lines-together;
	page-break-after:avoid;
	mso-outline-level:4;
	font-size:12.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:major-latin;
	mso-fareast-font-family:"Times New Roman";
	mso-fareast-theme-font:major-fareast;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:major-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:major-bidi;
	color:#4F81BD;
	mso-themecolor:accent1;
	font-weight:bold;}
h5
	{mso-style-priority:9;
	mso-style-qformat:yes;
	mso-style-next:Normal;
	margin-top:10.0pt;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:0in;
	margin-bottom:.0001pt;
	text-align:left;
	mso-pagination:widow-orphan lines-together;
	page-break-after:avoid;
	mso-outline-level:5;
	font-size:12.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:major-latin;
	mso-fareast-font-family:"Times New Roman";
	mso-fareast-theme-font:major-fareast;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:major-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:major-bidi;
	color:#4F81BD;
	mso-themecolor:accent1;
	font-weight:normal;
	font-style:italic;}
p.MsoToc1, li.MsoToc1, div.MsoToc1
	{mso-style-update:auto;
	mso-style-priority:39;
	mso-style-next:Normal;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:5.0pt;
	margin-left:0in;
	text-align:left;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Cambria","serif";
	mso-ascii-font-family:Cambria;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Cambria;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Cambria;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
p.MsoTitle, li.MsoTitle, div.MsoTitle
	{mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-next:Normal;
	margin-top:24.0pt;
	margin-right:0in;
	margin-bottom:12.0pt;
	margin-left:0in;
	text-align:center;
	mso-pagination:widow-orphan lines-together;
	page-break-after:avoid;
	font-size:18.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:major-latin;
	mso-fareast-font-family:"Times New Roman";
	mso-fareast-theme-font:major-fareast;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:major-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:major-bidi;
	color:#345A8A;
	mso-themecolor:accent1;
	mso-themeshade:181;
	font-weight:bold;}
p.MsoBodyText, li.MsoBodyText, div.MsoBodyText
	{mso-style-unhide:no;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:6.0pt;
	margin-left:0in;
	text-align:left;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Cambria","serif";
	mso-ascii-font-family:Cambria;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Cambria;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Cambria;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
p.MsoDate, li.MsoDate, div.MsoDate
	{mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-parent:"";
	mso-style-next:Normal;
	margin:0in;
	margin-bottom:.0001pt;
	text-align:center;
	mso-pagination:widow-orphan lines-together;
	page-break-after:avoid;
	font-size:12.0pt;
	font-family:"Cambria","serif";
	mso-ascii-font-family:Cambria;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Cambria;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Cambria;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	mso-style-unhide:no;
	color:blue;
	mso-themecolor:hyperlink;
	text-decoration:underline;
	text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-unhide:no;
	color:purple;
	mso-themecolor:followedhyperlink;
	text-decoration:underline;
	text-underline:single;}
p
	{mso-style-noshow:yes;
	mso-style-priority:99;
	mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	text-align:justify;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman","serif";
	mso-fareast-font-family:"Times New Roman";}
tt
	{mso-style-noshow:yes;
	mso-style-priority:99;
	font-family:"Courier New";
	mso-ascii-font-family:"Courier New";
	mso-fareast-font-family:"Times New Roman";
	mso-hansi-font-family:"Courier New";
	mso-bidi-font-family:"Courier New";}
p.MsoTocHeading, li.MsoTocHeading, div.MsoTocHeading
	{mso-style-priority:39;
	mso-style-qformat:yes;
	mso-style-parent:"Heading 1";
	mso-style-next:Normal;
	margin-top:12.0pt;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:0in;
	margin-bottom:.0001pt;
	text-align:left;
	line-height:107%;
	mso-pagination:widow-orphan lines-together;
	page-break-after:avoid;
	font-size:16.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:major-latin;
	mso-fareast-font-family:"Times New Roman";
	mso-fareast-theme-font:major-fareast;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:major-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:major-bidi;
	color:#365F91;
	mso-themecolor:accent1;
	mso-themeshade:191;}
p.Compact, li.Compact, div.Compact
	{mso-style-name:Compact;
	mso-style-unhide:no;
	mso-style-qformat:yes;
	margin-top:1.8pt;
	margin-right:0in;
	margin-bottom:1.8pt;
	margin-left:0in;
	text-align:left;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Cambria","serif";
	mso-ascii-font-family:Cambria;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Cambria;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Cambria;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
p.Authors, li.Authors, div.Authors
	{mso-style-name:Authors;
	mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-parent:"";
	mso-style-next:Normal;
	margin:0in;
	margin-bottom:.0001pt;
	text-align:center;
	mso-pagination:widow-orphan lines-together;
	page-break-after:avoid;
	font-size:12.0pt;
	font-family:"Cambria","serif";
	mso-ascii-font-family:Cambria;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Cambria;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Cambria;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
p.BlockQuote, li.BlockQuote, div.BlockQuote
	{mso-style-name:"Block Quote";
	mso-style-priority:9;
	mso-style-qformat:yes;
	mso-style-next:Normal;
	margin-top:5.0pt;
	margin-right:0in;
	margin-bottom:5.0pt;
	margin-left:0in;
	text-align:left;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:major-latin;
	mso-fareast-font-family:"Times New Roman";
	mso-fareast-theme-font:major-fareast;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:major-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:major-bidi;
	mso-bidi-font-weight:bold;}
p.DefinitionTerm, li.DefinitionTerm, div.DefinitionTerm
	{mso-style-name:"Definition Term";
	mso-style-unhide:no;
	mso-style-next:Definition;
	margin:0in;
	margin-bottom:.0001pt;
	text-align:left;
	mso-pagination:widow-orphan lines-together;
	page-break-after:avoid;
	font-size:12.0pt;
	font-family:"Cambria","serif";
	mso-ascii-font-family:Cambria;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Cambria;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Cambria;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;
	font-weight:bold;
	mso-bidi-font-weight:normal;}
p.Definition, li.Definition, div.Definition
	{mso-style-name:Definition;
	mso-style-unhide:no;
	margin:0in;
	margin-bottom:.0001pt;
	text-align:left;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Cambria","serif";
	mso-ascii-font-family:Cambria;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Cambria;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Cambria;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
p.TableCaption, li.TableCaption, div.TableCaption
	{mso-style-name:"Table Caption";
	mso-style-unhide:no;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:6.0pt;
	margin-left:0in;
	text-align:left;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Cambria","serif";
	mso-ascii-font-family:Cambria;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Cambria;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Cambria;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;
	font-style:italic;
	mso-bidi-font-style:normal;}
p.ImageCaption, li.ImageCaption, div.ImageCaption
	{mso-style-name:"Image Caption";
	mso-style-unhide:no;
	mso-style-link:"Body Text Char";
	margin-top:0in;
	margin-right:0in;
	margin-bottom:6.0pt;
	margin-left:0in;
	text-align:left;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Cambria","serif";
	mso-ascii-font-family:Cambria;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Cambria;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Cambria;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;
	font-style:italic;
	mso-bidi-font-style:normal;}
span.BodyTextChar
	{mso-style-name:"Body Text Char";
	mso-style-unhide:no;
	mso-style-locked:yes;
	mso-style-link:"Image Caption";}
span.VerbatimChar
	{mso-style-name:"Verbatim Char";
	mso-style-unhide:no;
	mso-style-locked:yes;
	mso-style-parent:"Body Text Char";
	mso-style-link:"Source Code";
	mso-ansi-font-size:11.0pt;
	font-family:Consolas;
	mso-ascii-font-family:Consolas;
	mso-hansi-font-family:Consolas;}
span.FootnoteRef
	{mso-style-name:"Footnote Ref";
	mso-style-unhide:no;
	mso-style-parent:"Body Text Char";
	vertical-align:super;}
span.Link
	{mso-style-name:Link;
	mso-style-unhide:no;
	mso-style-parent:"Body Text Char";
	color:#4F81BD;
	mso-themecolor:accent1;}
p.SourceCode, li.SourceCode, div.SourceCode
	{mso-style-name:"Source Code";
	mso-style-unhide:no;
	mso-style-link:"Verbatim Char";
	margin:0in;
	margin-bottom:.0001pt;
	text-align:left;
	mso-pagination:widow-orphan;
	word-break:break-all;
	font-size:12.0pt;
	font-family:"Cambria","serif";
	mso-ascii-font-family:Cambria;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Cambria;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Cambria;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
span.KeywordTok
	{mso-style-name:KeywordTok;
	mso-style-unhide:no;
	mso-style-parent:"Verbatim Char";
	mso-ansi-font-size:11.0pt;
	font-family:Consolas;
	mso-ascii-font-family:Consolas;
	mso-hansi-font-family:Consolas;
	color:#007020;
	font-weight:bold;
	mso-bidi-font-weight:normal;}
span.DataTypeTok
	{mso-style-name:DataTypeTok;
	mso-style-unhide:no;
	mso-style-parent:"Verbatim Char";
	mso-ansi-font-size:11.0pt;
	font-family:Consolas;
	mso-ascii-font-family:Consolas;
	mso-hansi-font-family:Consolas;
	color:#902000;}
span.DecValTok
	{mso-style-name:DecValTok;
	mso-style-unhide:no;
	mso-style-parent:"Verbatim Char";
	mso-ansi-font-size:11.0pt;
	font-family:Consolas;
	mso-ascii-font-family:Consolas;
	mso-hansi-font-family:Consolas;
	color:#40A070;}
span.BaseNTok
	{mso-style-name:BaseNTok;
	mso-style-unhide:no;
	mso-style-parent:"Verbatim Char";
	mso-ansi-font-size:11.0pt;
	font-family:Consolas;
	mso-ascii-font-family:Consolas;
	mso-hansi-font-family:Consolas;
	color:#40A070;}
span.FloatTok
	{mso-style-name:FloatTok;
	mso-style-unhide:no;
	mso-style-parent:"Verbatim Char";
	mso-ansi-font-size:11.0pt;
	font-family:Consolas;
	mso-ascii-font-family:Consolas;
	mso-hansi-font-family:Consolas;
	color:#40A070;}
span.CharTok
	{mso-style-name:CharTok;
	mso-style-unhide:no;
	mso-style-parent:"Verbatim Char";
	mso-ansi-font-size:11.0pt;
	font-family:Consolas;
	mso-ascii-font-family:Consolas;
	mso-hansi-font-family:Consolas;
	color:#4070A0;}
span.StringTok
	{mso-style-name:StringTok;
	mso-style-unhide:no;
	mso-style-parent:"Verbatim Char";
	mso-ansi-font-size:11.0pt;
	font-family:Consolas;
	mso-ascii-font-family:Consolas;
	mso-hansi-font-family:Consolas;
	color:#4070A0;}
span.CommentTok
	{mso-style-name:CommentTok;
	mso-style-unhide:no;
	mso-style-parent:"Verbatim Char";
	mso-ansi-font-size:11.0pt;
	font-family:Consolas;
	mso-ascii-font-family:Consolas;
	mso-hansi-font-family:Consolas;
	color:#60A0B0;
	font-style:italic;
	mso-bidi-font-style:normal;}
span.OtherTok
	{mso-style-name:OtherTok;
	mso-style-unhide:no;
	mso-style-parent:"Verbatim Char";
	mso-ansi-font-size:11.0pt;
	font-family:Consolas;
	mso-ascii-font-family:Consolas;
	mso-hansi-font-family:Consolas;
	color:#007020;}
span.AlertTok
	{mso-style-name:AlertTok;
	mso-style-unhide:no;
	mso-style-parent:"Verbatim Char";
	mso-ansi-font-size:11.0pt;
	font-family:Consolas;
	mso-ascii-font-family:Consolas;
	mso-hansi-font-family:Consolas;
	color:red;
	font-weight:bold;
	mso-bidi-font-weight:normal;}
span.FunctionTok
	{mso-style-name:FunctionTok;
	mso-style-unhide:no;
	mso-style-parent:"Verbatim Char";
	mso-ansi-font-size:11.0pt;
	font-family:Consolas;
	mso-ascii-font-family:Consolas;
	mso-hansi-font-family:Consolas;
	color:#06287E;}
span.RegionMarkerTok
	{mso-style-name:RegionMarkerTok;
	mso-style-unhide:no;
	mso-style-parent:"Verbatim Char";
	mso-ansi-font-size:11.0pt;
	font-family:Consolas;
	mso-ascii-font-family:Consolas;
	mso-hansi-font-family:Consolas;}
span.ErrorTok
	{mso-style-name:ErrorTok;
	mso-style-unhide:no;
	mso-style-parent:"Verbatim Char";
	mso-ansi-font-size:11.0pt;
	font-family:Consolas;
	mso-ascii-font-family:Consolas;
	mso-hansi-font-family:Consolas;
	color:red;
	font-weight:bold;
	mso-bidi-font-weight:normal;}
span.NormalTok
	{mso-style-name:NormalTok;
	mso-style-unhide:no;
	mso-style-parent:"Verbatim Char";
	mso-ansi-font-size:11.0pt;
	font-family:Consolas;
	mso-ascii-font-family:Consolas;
	mso-hansi-font-family:Consolas;}
.MsoChpDefault
	{mso-style-type:export-only;
	mso-default-props:yes;
	font-size:12.0pt;
	mso-ansi-font-size:12.0pt;
	mso-bidi-font-size:12.0pt;
	font-family:"Cambria","serif";
	mso-ascii-font-family:Cambria;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Cambria;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Cambria;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in .75in 1.0in .75in;
	mso-header-margin:.5in;
	mso-footer-margin:.5in;
	mso-paper-source:0;}
div.WordSection1
	{page:WordSection1;}
 /* List Definitions */
 @list l0
	{mso-list-id:-1977742454;
	mso-list-template-ids:-1398354164;}
@list l0:level1
	{mso-level-start-at:0;
	mso-level-number-format:bullet;
	mso-level-text:" ";
	mso-level-tab-stop:0in;
	mso-level-number-position:left;
	margin-left:24.0pt;
	text-indent:-24.0pt;}
@list l0:level2
	{mso-level-start-at:0;
	mso-level-number-format:bullet;
	mso-level-text:" ";
	mso-level-tab-stop:.5in;
	mso-level-number-position:left;
	margin-left:60.0pt;
	text-indent:-24.0pt;}
@list l0:level3
	{mso-level-start-at:0;
	mso-level-number-format:bullet;
	mso-level-text:" ";
	mso-level-tab-stop:1.0in;
	mso-level-number-position:left;
	margin-left:96.0pt;
	text-indent:-24.0pt;}
@list l0:level4
	{mso-level-start-at:0;
	mso-level-number-format:bullet;
	mso-level-text:" ";
	mso-level-tab-stop:1.5in;
	mso-level-number-position:left;
	margin-left:132.0pt;
	text-indent:-24.0pt;}
@list l0:level5
	{mso-level-start-at:0;
	mso-level-number-format:bullet;
	mso-level-text:" ";
	mso-level-tab-stop:2.0in;
	mso-level-number-position:left;
	margin-left:168.0pt;
	text-indent:-24.0pt;}
@list l0:level6
	{mso-level-start-at:0;
	mso-level-number-format:bullet;
	mso-level-text:" ";
	mso-level-tab-stop:2.5in;
	mso-level-number-position:left;
	margin-left:204.0pt;
	text-indent:-24.0pt;}
@list l0:level7
	{mso-level-start-at:0;
	mso-level-number-format:bullet;
	mso-level-text:" ";
	mso-level-tab-stop:3.0in;
	mso-level-number-position:left;
	margin-left:240.0pt;
	text-indent:-24.0pt;}
@list l0:level8
	{mso-level-start-at:0;
	mso-level-text:"";
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:0in;
	text-indent:0in;}
@list l0:level9
	{mso-level-start-at:0;
	mso-level-text:"";
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:0in;
	text-indent:0in;}
ol
	{margin-bottom:0in;}
ul
	{margin-bottom:0in;}
-->
</style>
<!--[if gte mso 10]>
<style>
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-parent:"";
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin:0in;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Cambria","serif";
	mso-ascii-font-family:Cambria;
	mso-ascii-theme-font:minor-latin;
	mso-hansi-font-family:Cambria;
	mso-hansi-theme-font:minor-latin;}
table.MsoTableGrid
	{mso-style-name:"Table Grid";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-unhide:no;
	border:solid windowtext 1.0pt;
	mso-border-alt:solid windowtext .5pt;
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-border-insideh:.5pt solid windowtext;
	mso-border-insidev:.5pt solid windowtext;
	mso-para-margin:0in;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Cambria","serif";
	mso-ascii-font-family:Cambria;
	mso-ascii-theme-font:minor-latin;
	mso-hansi-font-family:Cambria;
	mso-hansi-theme-font:minor-latin;}
</style>
<![endif]--><!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026"/>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1"/>
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=EN-US link=blue vlink=purple style='tab-interval:.5in'>

<div class=WordSection1>

<p class=MsoTitle style='mso-margin-top-alt:auto'>N3891: A proposal to rename
shared_mutex to shared_timed_mutex</p>

<p class=Authors>Gor Nishanov, Herb Sutter {gorn,hsutter}@microsoft.com</p>

<p class=MsoDate>2014-01-14</p>

<w:Sdt SdtDocPart="t" DocPartType="Table of Contents" DocPartUnique="t"
 ID="1766180019">
 <p class=MsoTocHeading><a name=introduction>Table of Contents</a><span
 style='mso-bookmark:introduction'><span style='font-size:12.0pt;line-height:
 107%;mso-ascii-font-family:Cambria;mso-ascii-theme-font:minor-latin;
 mso-fareast-font-family:Cambria;mso-fareast-theme-font:minor-latin;mso-hansi-font-family:
 Cambria;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:"Times New Roman";
 mso-bidi-theme-font:minor-bidi;color:windowtext'><w:sdtPr></w:sdtPr></span></span></p>
 <p class=MsoToc1 style='tab-stops:right dotted 503.5pt'><span
 style='mso-bookmark:introduction'></span><!--[if supportFields]><span
 style='mso-bookmark:introduction'></span><span style='mso-element:field-begin'></span><span
 style='mso-bookmark:introduction'><span style='mso-spacerun:yes'></span>TOC
 \o &quot;1-3&quot; \h \z \u <span style='mso-element:field-separator'></span></span><![endif]--><span
 style='mso-bookmark:introduction'></span><a href="#_Toc377817686"><span
 style='mso-bookmark:introduction'><span style='mso-no-proof:yes'>Introduction</span></span><span
 style='mso-bookmark:introduction'><span style='color:windowtext;display:none;
 mso-hide:screen;mso-no-proof:yes;text-decoration:none;text-underline:none'><span
 style='mso-tab-count:1 dotted'>.. </span></span></span><!--[if supportFields]><span
 style='mso-bookmark:introduction'></span><span style='mso-element:field-begin'></span><span
 style='mso-bookmark:introduction'><span style='color:windowtext;display:none;
 mso-hide:screen;mso-no-proof:yes;text-decoration:none;text-underline:none'>
 PAGEREF _Toc377817686 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
 style='mso-bookmark:introduction'><span style='color:windowtext;display:none;
 mso-hide:screen;mso-no-proof:yes;text-decoration:none;text-underline:none'>1<!--[if gte mso 9]><xml>
  <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003300370037003800310037003600380036000000</w:data>
 </xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
 introduction'></span><span style='mso-element:field-end'></span><![endif]--><span
 style='mso-bookmark:introduction'></span><span style='mso-bookmark:introduction'></span></a><span
 style='mso-bookmark:introduction'><span style='font-size:11.0pt;mso-fareast-font-family:
 "Times New Roman";mso-fareast-theme-font:minor-fareast;mso-no-proof:yes'><o:p></o:p></span></span></p>
 <p class=MsoToc1 style='tab-stops:right dotted 503.5pt'><span
 style='mso-bookmark:introduction'></span><a href="#_Toc377817687"><span
 style='mso-bookmark:introduction'><span style='mso-no-proof:yes'>Background</span></span><span
 style='mso-bookmark:introduction'><span style='color:windowtext;display:none;
 mso-hide:screen;mso-no-proof:yes;text-decoration:none;text-underline:none'><span
 style='mso-tab-count:1 dotted'>.. </span></span></span><!--[if supportFields]><span
 style='mso-bookmark:introduction'></span><span style='mso-element:field-begin'></span><span
 style='mso-bookmark:introduction'><span style='color:windowtext;display:none;
 mso-hide:screen;mso-no-proof:yes;text-decoration:none;text-underline:none'>
 PAGEREF _Toc377817687 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
 style='mso-bookmark:introduction'><span style='color:windowtext;display:none;
 mso-hide:screen;mso-no-proof:yes;text-decoration:none;text-underline:none'>1<!--[if gte mso 9]><xml>
  <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003300370037003800310037003600380037000000</w:data>
 </xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
 introduction'></span><span style='mso-element:field-end'></span><![endif]--><span
 style='mso-bookmark:introduction'></span><span style='mso-bookmark:introduction'></span></a><span
 style='mso-bookmark:introduction'><span style='font-size:11.0pt;mso-fareast-font-family:
 "Times New Roman";mso-fareast-theme-font:minor-fareast;mso-no-proof:yes'><o:p></o:p></span></span></p>
 <p class=MsoToc1 style='tab-stops:right dotted 503.5pt'><span
 style='mso-bookmark:introduction'></span><a href="#_Toc377817688"><span
 style='mso-bookmark:introduction'><span style='mso-no-proof:yes'>Changes
 compared to N3797</span></span><span style='mso-bookmark:introduction'><span
 style='color:windowtext;display:none;mso-hide:screen;mso-no-proof:yes;
 text-decoration:none;text-underline:none'><span style='mso-tab-count:1 dotted'>.. </span></span></span><!--[if supportFields]><span
 style='mso-bookmark:introduction'></span><span style='mso-element:field-begin'></span><span
 style='mso-bookmark:introduction'><span style='color:windowtext;display:none;
 mso-hide:screen;mso-no-proof:yes;text-decoration:none;text-underline:none'>
 PAGEREF _Toc377817688 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
 style='mso-bookmark:introduction'><span style='color:windowtext;display:none;
 mso-hide:screen;mso-no-proof:yes;text-decoration:none;text-underline:none'>2<!--[if gte mso 9]><xml>
  <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003300370037003800310037003600380038000000</w:data>
 </xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
 introduction'></span><span style='mso-element:field-end'></span><![endif]--><span
 style='mso-bookmark:introduction'></span><span style='mso-bookmark:introduction'></span></a><span
 style='mso-bookmark:introduction'><span style='font-size:11.0pt;mso-fareast-font-family:
 "Times New Roman";mso-fareast-theme-font:minor-fareast;mso-no-proof:yes'><o:p></o:p></span></span></p>
 <p class=MsoToc1 style='tab-stops:right dotted 503.5pt'><span
 style='mso-bookmark:introduction'></span><a href="#_Toc377817689"><span
 style='mso-bookmark:introduction'><span style='mso-no-proof:yes'>Proposed
 Wording (s/shared_mutex/shared_timed_mutex/g)</span></span><span
 style='mso-bookmark:introduction'><span style='color:windowtext;display:none;
 mso-hide:screen;mso-no-proof:yes;text-decoration:none;text-underline:none'><span
 style='mso-tab-count:1 dotted'>. </span></span></span><!--[if supportFields]><span
 style='mso-bookmark:introduction'></span><span style='mso-element:field-begin'></span><span
 style='mso-bookmark:introduction'><span style='color:windowtext;display:none;
 mso-hide:screen;mso-no-proof:yes;text-decoration:none;text-underline:none'>
 PAGEREF _Toc377817689 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
 style='mso-bookmark:introduction'><span style='color:windowtext;display:none;
 mso-hide:screen;mso-no-proof:yes;text-decoration:none;text-underline:none'>2<!--[if gte mso 9]><xml>
  <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003300370037003800310037003600380039000000</w:data>
 </xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
 introduction'></span><span style='mso-element:field-end'></span><![endif]--><span
 style='mso-bookmark:introduction'></span><span style='mso-bookmark:introduction'></span></a><span
 style='mso-bookmark:introduction'><span style='font-size:11.0pt;mso-fareast-font-family:
 "Times New Roman";mso-fareast-theme-font:minor-fareast;mso-no-proof:yes'><o:p></o:p></span></span></p>
 <p class=MsoToc1 style='tab-stops:right dotted 503.5pt'><span
 style='mso-bookmark:introduction'></span><a href="#_Toc377817690"><span
 style='mso-bookmark:introduction'><span style='mso-no-proof:yes'>Acknowledgements</span></span><span
 style='mso-bookmark:introduction'><span style='color:windowtext;display:none;
 mso-hide:screen;mso-no-proof:yes;text-decoration:none;text-underline:none'><span
 style='mso-tab-count:1 dotted'>. </span></span></span><!--[if supportFields]><span
 style='mso-bookmark:introduction'></span><span style='mso-element:field-begin'></span><span
 style='mso-bookmark:introduction'><span style='color:windowtext;display:none;
 mso-hide:screen;mso-no-proof:yes;text-decoration:none;text-underline:none'>
 PAGEREF _Toc377817690 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
 style='mso-bookmark:introduction'><span style='color:windowtext;display:none;
 mso-hide:screen;mso-no-proof:yes;text-decoration:none;text-underline:none'>3<!--[if gte mso 9]><xml>
  <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003300370037003800310037003600390030000000</w:data>
 </xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
 introduction'></span><span style='mso-element:field-end'></span><![endif]--><span
 style='mso-bookmark:introduction'></span><span style='mso-bookmark:introduction'></span></a><span
 style='mso-bookmark:introduction'><span style='font-size:11.0pt;mso-fareast-font-family:
 "Times New Roman";mso-fareast-theme-font:minor-fareast;mso-no-proof:yes'><o:p></o:p></span></span></p>
 <p class=MsoNormal><span style='mso-bookmark:introduction'></span><!--[if supportFields]><span
 style='mso-bookmark:introduction'></span><span style='mso-element:field-end'></span><![endif]--><span
 style='mso-bookmark:introduction'><o:p>&nbsp;</o:p></span></p>
</w:Sdt>

<h1><span style='mso-bookmark:introduction'><a name="_Toc377817686">Introduction</a></span></h1>

<span style='mso-bookmark:introduction'></span>

<p class=MsoNormal>We propose to rename shared_mutex to shared_timed_mutex: </p>

<p class=MsoNormal>(a) for consistency with the other mutexes (fixing naming
inconsistency); </p>

<p class=MsoNormal>(b) to leave room for a shared_mutex which can be more efficient
on some platforms than shared_timed_ mutex. </p>

<h1><a name="_Toc377817687">Background</a></h1>

<p class=MsoNormal>Prior to this proposal shared_mutex was not following the
precedent set by timed_mutex and recursive_timed_mutex, by not including timed
into its name.</p>

<table class=MsoTableGrid border=1 cellspacing=0 cellpadding=0
 style='border-collapse:collapse;border:none;mso-border-alt:solid windowtext .5pt;
 mso-yfti-tbllook:1184;mso-padding-alt:0in 5.4pt 0in 5.4pt'>
 <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;height:.2in'>
  <td width=399 valign=top style='width:239.4pt;border:solid windowtext 1.0pt;
  mso-border-alt:solid windowtext .5pt;background:#D9D9D9;mso-background-themecolor:
  background1;mso-background-themeshade:217;padding:0in 5.4pt 0in 5.4pt;
  height:.2in'>
  <p class=MsoNormal>Non-timed mutexes</p>
  </td>
  <td width=399 valign=top style='width:239.4pt;border:solid windowtext 1.0pt;
  border-left:none;mso-border-left-alt:solid windowtext .5pt;mso-border-alt:
  solid windowtext .5pt;background:#D9D9D9;mso-background-themecolor:background1;
  mso-background-themeshade:217;padding:0in 5.4pt 0in 5.4pt;height:.2in'>
  <p class=MsoNormal>Timed mutexes</p>
  </td>
 </tr>
 <tr style='mso-yfti-irow:1;height:.2in'>
  <td width=399 valign=top style='width:239.4pt;border:solid windowtext 1.0pt;
  border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
  padding:0in 5.4pt 0in 5.4pt;height:.2in'>
  <p class=MsoNormal>std::mutex</p>
  </td>
  <td width=399 valign=top style='width:239.4pt;border-top:none;border-left:
  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:.2in'>
  <p class=MsoNormal>std::<b style='mso-bidi-font-weight:normal'>timed</b>_mutex</p>
  </td>
 </tr>
 <tr style='mso-yfti-irow:2;height:.2in'>
  <td width=399 valign=top style='width:239.4pt;border:solid windowtext 1.0pt;
  border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
  padding:0in 5.4pt 0in 5.4pt;height:.2in'>
  <p class=MsoNormal>std::recursive_mutex</p>
  </td>
  <td width=399 valign=top style='width:239.4pt;border-top:none;border-left:
  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:.2in'>
  <p class=MsoNormal>std::recursive_<b style='mso-bidi-font-weight:normal'>timed</b>_mutex</p>
  </td>
 </tr>
 <tr style='mso-yfti-irow:3;mso-yfti-lastrow:yes;height:.2in'>
  <td width=399 valign=top style='width:239.4pt;border:solid windowtext 1.0pt;
  border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
  padding:0in 5.4pt 0in 5.4pt;height:.2in'>
  <p class=MsoNormal><o:p>&nbsp;</o:p></p>
  </td>
  <td width=399 valign=top style='width:239.4pt;border-top:none;border-left:
  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:.2in'>
  <p class=MsoNormal>std::shared_mutex</p>
  </td>
 </tr>
</table>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal>With this proposal, we fix this naming inconsistency and
leave room for the natural name of a shared_mutex that does not have to satisfy
a timed mutex requirement.</p>

<table class=MsoTableGrid border=1 cellspacing=0 cellpadding=0
 style='border-collapse:collapse;border:none;mso-border-alt:solid windowtext .5pt;
 mso-yfti-tbllook:1184;mso-padding-alt:0in 5.4pt 0in 5.4pt'>
 <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes'>
  <td width=399 valign=top style='width:239.4pt;border:solid windowtext 1.0pt;
  mso-border-alt:solid windowtext .5pt;background:#D9D9D9;mso-background-themecolor:
  background1;mso-background-themeshade:217;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal>Non-timed mutexes</p>
  </td>
  <td width=399 valign=top style='width:239.4pt;border:solid windowtext 1.0pt;
  border-left:none;mso-border-left-alt:solid windowtext .5pt;mso-border-alt:
  solid windowtext .5pt;background:#D9D9D9;mso-background-themecolor:background1;
  mso-background-themeshade:217;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal>Timed mutexes</p>
  </td>
 </tr>
 <tr style='mso-yfti-irow:1'>
  <td width=399 valign=top style='width:239.4pt;border:solid windowtext 1.0pt;
  border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
  padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal>std::mutex</p>
  </td>
  <td width=399 valign=top style='width:239.4pt;border-top:none;border-left:
  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal>std::<b style='mso-bidi-font-weight:normal'>timed</b>_mutex</p>
  </td>
 </tr>
 <tr style='mso-yfti-irow:2'>
  <td width=399 valign=top style='width:239.4pt;border:solid windowtext 1.0pt;
  border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
  padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal>std::recursive_mutex</p>
  </td>
  <td width=399 valign=top style='width:239.4pt;border-top:none;border-left:
  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal>std::recursive_<b style='mso-bidi-font-weight:normal'>timed</b>_mutex</p>
  </td>
 </tr>
 <tr style='mso-yfti-irow:3;mso-yfti-lastrow:yes'>
  <td width=399 valign=top style='width:239.4pt;border:solid windowtext 1.0pt;
  border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
  padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal><span style='color:#BFBFBF;mso-themecolor:background1;
  mso-themeshade:191'>std::shared_mutex (can be proposed later)<o:p></o:p></span></p>
  </td>
  <td width=399 valign=top style='width:239.4pt;border-top:none;border-left:
  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal>std::shared_<b style='mso-bidi-font-weight:normal'>timed</b>_mutex</p>
  </td>
 </tr>
</table>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal>There is a performance motivation for a non-timed shared_mutex.
On Windows, it can be implemented in terms of slim reader/writer locks that
have superior performance on some benchmarks to even simple exclusive locks.
See: <a
href="http://askldjd.wordpress.com/2011/03/06/performance-comparison-on-reader-writer-locks/">Performance
Comparison on Reader-Writer Locks</a> and <a
href="http://msdn.microsoft.com/en-us/magazine/cc163405.aspx">MSDN Mag:
Synchronization Primitives New To Windows Vista</a><span style='color:#1F497D'>.</span></p>

<h1><a name=changes-compared-to-n3797></a><a name="_Toc377817688"><span
style='mso-bookmark:changes-compared-to-n3797'>Changes compared to N3797</span></a><span
style='mso-bookmark:changes-compared-to-n3797'></span></h1>

<span style='mso-bookmark:changes-compared-to-n3797'></span>

<p class=MsoNormal>This paper only includes the proposed wording due to rename.
For background please refer to N3659.</p>

<h1><a name=proposed-wording></a><a name="_Toc377817689"><span
style='mso-bookmark:proposed-wording'>Proposed Wording (s/shared_mutex/shared_timed_mutex/g)</span></a><span
style='mso-bookmark:proposed-wording'></span></h1>

<span style='mso-bookmark:proposed-wording'></span>

<p class=MsoNormal>Modify shared_mutex synopsis of 30.4 [thread.mutex] as
follows:</p>

<p class=MsoNormal style='margin-left:.5in;mso-layout-grid-align:none;
text-autospace:none'><span style='font-size:10.0pt;font-family:LMRoman10-Bold;
mso-bidi-font-family:LMRoman10-Bold;mso-bidi-font-weight:bold'>Header </span><span
style='font-size:10.0pt;font-family:LMMonoLt10-Bold;mso-bidi-font-family:LMMonoLt10-Bold;
mso-bidi-font-weight:bold'>&lt;shared_mutex&gt; </span><span style='font-size:
10.0pt;font-family:LMRoman10-Bold;mso-bidi-font-family:LMRoman10-Bold;
mso-bidi-font-weight:bold'>synopsis<o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:.5in;mso-layout-grid-align:none;
text-autospace:none'><span style='font-size:10.0pt;font-family:LMRoman10-Bold;
mso-bidi-font-family:LMRoman10-Bold;mso-bidi-font-weight:bold'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='margin-left:.5in;mso-layout-grid-align:none;
text-autospace:none'><span style='font-size:9.0pt;font-family:"Lucida Console";
mso-bidi-font-family:LMMono9-Regular'>namespace std {<o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:.5in;mso-layout-grid-align:none;
text-autospace:none'><span style='font-size:9.0pt;font-family:"Lucida Console";
mso-bidi-font-family:LMMono9-Regular'><span style='mso-spacerun:yes'> </span>class
shared_<span style='background:lime;mso-highlight:lime'>timed_</span>mutex;<o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:.5in;mso-layout-grid-align:none;
text-autospace:none'><span style='font-size:9.0pt;font-family:"Lucida Console";
mso-bidi-font-family:LMMono9-Regular'><span style='mso-spacerun:yes'> </span>template
&lt;class Mutex&gt; class shared_lock;<o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:.5in;mso-layout-grid-align:none;
text-autospace:none'><span style='font-size:9.0pt;font-family:"Lucida Console";
mso-bidi-font-family:LMMono9-Regular'><span style='mso-spacerun:yes'> </span>template
&lt;class Mutex&gt;<o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:.5in;mso-layout-grid-align:none;
text-autospace:none'><span style='font-size:9.0pt;font-family:"Lucida Console";
mso-bidi-font-family:LMMono9-Regular'><span style='mso-spacerun:yes'> </span>void
swap(shared_lock&lt;Mutex&gt;&amp; x, shared_lock&lt;Mutex&gt;&amp; y)
noexcept;<o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:.5in;mso-layout-grid-align:none;
text-autospace:none'><span style='font-size:9.0pt;font-family:"Lucida Console";
mso-bidi-font-family:LMMono9-Regular'>}<o:p></o:p></span></p>

<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
style='font-size:9.0pt;font-family:"Lucida Console";mso-bidi-font-family:LMMono9-Regular'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal>Modify 30.4.1.2 [thread.mutex.requirements.mutex] as
follows:</p>

<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
style='font-size:9.0pt;font-family:"Lucida Console";mso-bidi-font-family:LMMono9-Regular'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='margin-left:.5in;mso-layout-grid-align:none;
text-autospace:none'><b><span style='font-size:10.0pt;font-family:LMRoman10-Bold;
mso-bidi-font-family:LMRoman10-Bold'>30.4.1.2 Mutex types
[thread.mutex.requirements.mutex]<o:p></o:p></span></b></p>

<p class=MsoNormal style='margin-left:.5in;mso-layout-grid-align:none;
text-autospace:none'><span style='font-size:7.0pt;font-family:LMRoman7-Regular;
mso-bidi-font-family:LMRoman7-Regular'>1 </span><span style='font-size:10.0pt;
font-family:LMRoman10-Regular;mso-bidi-font-family:LMRoman10-Regular'>The </span><i><span
style='font-size:10.0pt;font-family:LMRoman10-Italic;mso-bidi-font-family:LMRoman10-Italic'>mutex
types </span></i><span style='font-size:10.0pt;font-family:LMRoman10-Regular;
mso-bidi-font-family:LMRoman10-Regular'>are the standard library types </span><span
style='font-size:10.0pt;font-family:LMMono10-Regular;mso-bidi-font-family:LMMono10-Regular'>std::mutex</span><span
style='font-size:10.0pt;font-family:LMRoman10-Regular;mso-bidi-font-family:
LMRoman10-Regular'>, </span><span style='font-size:10.0pt;font-family:LMMono10-Regular;
mso-bidi-font-family:LMMono10-Regular'>std::recursive_mutex</span><span
style='font-size:10.0pt;font-family:LMRoman10-Regular;mso-bidi-font-family:
LMRoman10-Regular'>, </span><span style='font-size:10.0pt;font-family:LMMono10-Regular;
mso-bidi-font-family:LMMono10-Regular'>std::timed_mutex</span><span
style='font-size:10.0pt;font-family:LMRoman10-Regular;mso-bidi-font-family:
LMRoman10-Regular'>, </span><span style='font-size:10.0pt;font-family:LMMono10-Regular;
mso-bidi-font-family:LMMono10-Regular'>std::recursive_timed_mutex</span><span
style='font-size:10.0pt;font-family:LMRoman10-Regular;mso-bidi-font-family:
LMRoman10-Regular'>, and </span><span style='font-size:10.0pt;font-family:LMMono10-Regular;
mso-bidi-font-family:LMMono10-Regular'>std::shared_<span style='background:
lime;mso-highlight:lime'>timed_</span>mutex</span><span style='font-size:10.0pt;
font-family:LMRoman10-Regular;mso-bidi-font-family:LMRoman10-Regular'>. They
shall meet the requirements set out in this section. In this description, </span><span
style='font-size:10.0pt;font-family:LMMono10-Regular;mso-bidi-font-family:LMMono10-Regular'>m
</span><span style='font-size:10.0pt;font-family:LMRoman10-Regular;mso-bidi-font-family:
LMRoman10-Regular'>denotes an object of a mutex type.<o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:.5in;mso-layout-grid-align:none;
text-autospace:none'><span style='font-size:10.0pt;font-family:LMRoman10-Regular;
mso-bidi-font-family:LMRoman10-Regular'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal>Modify 30.4.1.3 [thread.timedmutex.requirements] as follows:</p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal style='margin-left:.5in;mso-layout-grid-align:none;
text-autospace:none'><b><span style='font-size:10.0pt;font-family:LMRoman10-Bold;
mso-bidi-font-family:LMRoman10-Bold;color:black'>30.4.1.3 Timed mutex types
[thread.timedmutex.requirements]<o:p></o:p></span></b></p>

<p class=MsoNormal style='margin-left:.5in;mso-layout-grid-align:none;
text-autospace:none'><span style='font-size:7.0pt;font-family:LMRoman7-Regular;
mso-bidi-font-family:LMRoman7-Regular;color:black'>1 </span><span
style='font-size:10.0pt;font-family:LMRoman10-Regular;mso-bidi-font-family:
LMRoman10-Regular;color:black'>The </span><i><span style='font-size:10.0pt;
font-family:LMRoman10-Italic;mso-bidi-font-family:LMRoman10-Italic;color:black'>timed
mutex types </span></i><span style='font-size:10.0pt;font-family:LMRoman10-Regular;
mso-bidi-font-family:LMRoman10-Regular;color:black'>are the standard library
types </span><span style='font-size:10.0pt;font-family:LMMono10-Regular;
mso-bidi-font-family:LMMono10-Regular;color:black'>std::timed_mutex</span><span
style='font-size:10.0pt;font-family:LMRoman10-Regular;mso-bidi-font-family:
LMRoman10-Regular;color:black'>, </span><span style='font-size:10.0pt;
font-family:LMMono10-Regular;mso-bidi-font-family:LMMono10-Regular;color:black'>std::recursive_timed_mutex</span><span
style='font-size:10.0pt;font-family:LMRoman10-Regular;mso-bidi-font-family:
LMRoman10-Regular;color:black'>, and </span><span style='font-size:10.0pt;
font-family:LMMono10-Regular;mso-bidi-font-family:LMMono10-Regular;color:black'>std::shared_<span
style='background:lime;mso-highlight:lime'>timed_</span>mutex</span><span
style='font-size:10.0pt;font-family:LMRoman10-Regular;mso-bidi-font-family:
LMRoman10-Regular;color:black'>. <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:.5in;mso-layout-grid-align:none;
text-autospace:none'><span style='font-size:10.0pt;font-family:LMRoman10-Regular;
mso-bidi-font-family:LMRoman10-Regular;color:black'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal>Modify 30.4.1.4 [thread.sharedmutex.requirements] as
follows:</p>

<p style='margin-left:.5in'>30.4.1.4 Shared <span style='background:lime;
mso-highlight:lime'>timed</span> mutex types [thread.shared<span
style='background:lime;mso-highlight:lime'>timed</span>mutex.requirements] </p>

<p style='margin-left:.5in'>The standard library type <tt><span
style='font-size:10.0pt'>std::shared_<span style='background:lime;mso-highlight:
lime'>timed_</span>mutex</span></tt> is a <i>shared </i><i style='mso-bidi-font-style:
normal'><span style='background:lime;mso-highlight:lime'>timed</span></i> <i>mutex
type</i>. Shared<span style='background:lime;mso-highlight:lime'> timed</span>
mutex types shall meet the requirements of timed mutex types
([thread.timedmutex.requirements]), and additionally shall meet the
requirements set out below. In this description, <tt><span style='font-size:
10.0pt'>m</span></tt> denotes an object of a mutex type, <tt><span
style='font-size:10.0pt'>rel_type</span></tt> denotes an object of an
instantiation of <tt><span style='font-size:10.0pt'>duration</span></tt>
(20.11.5), and <tt><span style='font-size:10.0pt'>abs_time</span></tt> denotes
an object of an instantiation of <tt><span style='font-size:10.0pt'>time_point</span></tt>
(20.11.6). </p>

<p class=MsoNormal>Modify 30.4.1.4.1 [thread.sharedmutex.requirements] as
follows:</p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal style='text-indent:.5in;mso-layout-grid-align:none;
text-autospace:none'><b><span style='font-size:10.0pt;font-family:LMRoman10-Bold;
mso-bidi-font-family:LMRoman10-Bold'>30.4.1.4.1 Class </span></b><b><span
style='font-size:10.0pt;font-family:LMMonoLt10-Bold;mso-bidi-font-family:LMMonoLt10-Bold'>shared_</span></b><b><span
style='font-size:10.0pt;font-family:LMRoman10-Bold;mso-bidi-font-family:LMRoman10-Bold;
background:lime;mso-highlight:lime'>timed_</span></b><b><span style='font-size:
10.0pt;font-family:LMMonoLt10-Bold;mso-bidi-font-family:LMMonoLt10-Bold'>mutex </span></b><b><span
style='font-size:10.0pt;font-family:LMRoman10-Bold;mso-bidi-font-family:LMRoman10-Bold'>[thread.shared<span
style='background:lime;mso-highlight:lime'>timed</span>mutex.class]<o:p></o:p></span></b></p>

<p class=MsoNormal style='margin-left:.5in;mso-layout-grid-align:none;
text-autospace:none'><span style='font-size:9.0pt;font-family:"Lucida Console";
mso-bidi-font-family:LMMono9-Regular'>namespace std {<o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:.5in;mso-layout-grid-align:none;
text-autospace:none'><span style='font-size:9.0pt;font-family:"Lucida Console";
mso-bidi-font-family:LMMono9-Regular'><span style='mso-spacerun:yes'> </span>class
shared_<span style='background:lime;mso-highlight:lime'>timed_</span>mutex {<o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:.5in;mso-layout-grid-align:none;
text-autospace:none'><span style='font-size:9.0pt;font-family:"Lucida Console";
mso-bidi-font-family:LMMono9-Regular'><span style='mso-spacerun:yes'> </span>public:<o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:.5in;mso-layout-grid-align:none;
text-autospace:none'><span style='font-size:9.0pt;font-family:"Lucida Console";
mso-bidi-font-family:LMMono9-Regular'><span style='mso-spacerun:yes'>
</span>shared_<span style='background:lime;mso-highlight:lime'>timed_</span>mutex();<o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:.5in;mso-layout-grid-align:none;
text-autospace:none'><span style='font-size:9.0pt;font-family:"Lucida Console";
mso-bidi-font-family:LMMono9-Regular'><span style='mso-spacerun:yes'>
</span>~shared_<span style='background:lime;mso-highlight:lime'>timed_</span>mutex();<o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:.5in;mso-layout-grid-align:none;
text-autospace:none'><span style='font-size:9.0pt;font-family:"Lucida Console";
mso-bidi-font-family:LMMono9-Regular'><span style='mso-spacerun:yes'>
</span>shared_<span style='background:lime;mso-highlight:lime'>timed_</span>mutex(const
shared_<span style='background:lime;mso-highlight:lime'>timed_</span>mutex&amp;)
= delete;<o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:.5in;mso-layout-grid-align:none;
text-autospace:none'><span style='font-size:9.0pt;font-family:"Lucida Console";
mso-bidi-font-family:LMMono9-Regular'><span style='mso-spacerun:yes'>
</span>shared_<span style='background:lime;mso-highlight:lime'>timed_</span>mutex&amp;
operator=(const shared_<span style='background:lime;mso-highlight:lime'>timed_</span>mutex&amp;)
= delete;<o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:.5in;mso-layout-grid-align:none;
text-autospace:none'><span style='font-size:9.0pt;font-family:"Lucida Console";
mso-bidi-font-family:LMMono9-Regular'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='margin-left:.5in;mso-layout-grid-align:none;
text-autospace:none'><span style='font-size:9.0pt;font-family:"Lucida Console";
mso-bidi-font-family:LMMono9-Regular'><o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:.5in;mso-layout-grid-align:none;
text-autospace:none'><span style='font-size:7.0pt;font-family:LMRoman7-Regular;
mso-bidi-font-family:LMRoman7-Regular;color:black'>1 </span><span
style='font-size:10.0pt;font-family:LMRoman10-Regular;mso-bidi-font-family:
LMRoman10-Regular;color:black'>The class </span><span style='font-size:10.0pt;
font-family:LMMono10-Regular;mso-bidi-font-family:LMMono10-Regular;color:black'>shared_</span><span
style='font-size:10.0pt;font-family:LMRoman10-Regular;mso-bidi-font-family:
LMRoman10-Regular;color:black;background:lime;mso-highlight:lime'>timed_</span><span
style='font-size:10.0pt;font-family:LMMono10-Regular;mso-bidi-font-family:LMMono10-Regular;
color:black'>mutex </span><span style='font-size:10.0pt;font-family:LMRoman10-Regular;
mso-bidi-font-family:LMRoman10-Regular;color:black'>provides a non-recursive
mutex with shared ownership semantics.<o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:.5in;mso-layout-grid-align:none;
text-autospace:none'><span style='font-size:7.0pt;font-family:LMRoman7-Regular;
mso-bidi-font-family:LMRoman7-Regular;color:black'>2 </span><span
style='font-size:10.0pt;font-family:LMRoman10-Regular;mso-bidi-font-family:
LMRoman10-Regular;color:black'>The class </span><span style='font-size:10.0pt;
font-family:LMMono10-Regular;mso-bidi-font-family:LMMono10-Regular;color:black'>shared_</span><span
style='font-size:10.0pt;font-family:LMRoman10-Regular;mso-bidi-font-family:
LMRoman10-Regular;color:black;background:lime;mso-highlight:lime'>timed_</span><span
style='font-size:10.0pt;font-family:LMMono10-Regular;mso-bidi-font-family:LMMono10-Regular;
color:black'>mutex </span><span style='font-size:10.0pt;font-family:LMRoman10-Regular;
mso-bidi-font-family:LMRoman10-Regular;color:black'>shall satisfy all of the </span><span
style='font-size:10.0pt;font-family:LMMono10-Regular;mso-bidi-font-family:LMMono10-Regular;
color:black'>Shared</span><span style='font-size:10.0pt;font-family:LMRoman10-Regular;
mso-bidi-font-family:LMRoman10-Regular;color:black;background:lime;mso-highlight:
lime'>Timed</span><span style='font-size:10.0pt;font-family:LMMono10-Regular;
mso-bidi-font-family:LMMono10-Regular;color:black'>Mutex </span><span
style='font-size:10.0pt;font-family:LMRoman10-Regular;mso-bidi-font-family:
LMRoman10-Regular;color:black'>requirements (</span><span style='font-size:
10.0pt;font-family:LMRoman10-Regular;mso-bidi-font-family:LMRoman10-Regular;
color:blue'>30.4.1.4</span><span style='font-size:10.0pt;font-family:LMRoman10-Regular;
mso-bidi-font-family:LMRoman10-Regular;color:black'>). It shall be a standard
layout class (Clause </span><span style='font-size:10.0pt;font-family:LMRoman10-Regular;
mso-bidi-font-family:LMRoman10-Regular;color:blue'>9</span><span
style='font-size:10.0pt;font-family:LMRoman10-Regular;mso-bidi-font-family:
LMRoman10-Regular;color:black'>).<o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:.5in;mso-layout-grid-align:none;
text-autospace:none'><span style='font-size:7.0pt;font-family:LMRoman7-Regular;
mso-bidi-font-family:LMRoman7-Regular;color:black'>3 </span><span
style='font-size:10.0pt;font-family:LMRoman10-Regular;mso-bidi-font-family:
LMRoman10-Regular;color:black'>The behavior of a program is undefined if:<o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:.5in;mso-layout-grid-align:none;
text-autospace:none'><span style='font-size:10.0pt;font-family:LMRoman10-Regular;
mso-bidi-font-family:LMRoman10-Regular;color:black'> it destroys a </span><span
style='font-size:10.0pt;font-family:LMMono10-Regular;mso-bidi-font-family:LMMono10-Regular;
color:black'>shared_</span><span style='font-size:10.0pt;font-family:LMRoman10-Regular;
mso-bidi-font-family:LMRoman10-Regular;color:black;background:lime;mso-highlight:
lime'>timed_</span><span style='font-size:10.0pt;font-family:LMMono10-Regular;
mso-bidi-font-family:LMMono10-Regular;color:black'>mutex </span><span
style='font-size:10.0pt;font-family:LMRoman10-Regular;mso-bidi-font-family:
LMRoman10-Regular;color:black'>object owned by any thread,<o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:.5in;mso-layout-grid-align:none;
text-autospace:none'><span style='font-size:10.0pt;font-family:LMRoman10-Regular;
mso-bidi-font-family:LMRoman10-Regular;color:black'> a thread attempts to
recursively gain any ownership of a </span><span style='font-size:10.0pt;
font-family:LMMono10-Regular;mso-bidi-font-family:LMMono10-Regular;color:black'>shared_</span><span
style='font-size:10.0pt;font-family:LMRoman10-Regular;mso-bidi-font-family:
LMRoman10-Regular;color:black;background:lime;mso-highlight:lime'>timed_</span><span
style='font-size:10.0pt;font-family:LMMono10-Regular;mso-bidi-font-family:LMMono10-Regular;
color:black'>mutex</span><span style='font-size:10.0pt;font-family:LMRoman10-Regular;
mso-bidi-font-family:LMRoman10-Regular;color:black'>.<o:p></o:p></span></p>

<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
style='font-size:10.0pt;font-family:LMRoman10-Regular;mso-bidi-font-family:
LMRoman10-Regular;color:black'><span style='mso-spacerun:yes'>
</span> a thread terminates while possessing any ownership of a </span><span
style='font-size:10.0pt;font-family:LMMono10-Regular;mso-bidi-font-family:LMMono10-Regular;
color:black'>shared_</span><span style='font-size:10.0pt;font-family:LMRoman10-Regular;
mso-bidi-font-family:LMRoman10-Regular;color:black;background:lime;mso-highlight:
lime'>timed_</span><span style='font-size:10.0pt;font-family:LMMono10-Regular;
mso-bidi-font-family:LMMono10-Regular;color:black'>mutex</span><span
style='font-size:10.0pt;font-family:LMRoman10-Regular;mso-bidi-font-family:
LMRoman10-Regular;color:black'>.</span><span style='font-size:9.0pt;font-family:
"Lucida Console";mso-bidi-font-family:LMMono9-Regular'><o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:.5in;mso-layout-grid-align:none;
text-autospace:none'><span style='font-size:9.0pt;font-family:"Lucida Console";
mso-bidi-font-family:LMMono9-Regular'><o:p>&nbsp;</o:p></span></p>

<h1><a name="_Toc377817690">Acknowledgements</a></h1>

<p class=MsoNormal>Thanks to Artur Laksberg, Gabriel Dos Reis, James McNellis and
Stephan T. Lavavej for their feedback and review. </p>

</div>

</body>

</html>
