<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 03:43:59 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>MongoDB Jira</title>
    <link>https://jira.mongodb.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.7.1</version>
        <build-number>970001</build-number>
        <build-date>13-04-2023</build-date>
    </build-info>


<item>
            <title>[SERVER-17310] Provide stdx polyfills for std:: implementation of boost concurrency types</title>
                <link>https://jira.mongodb.org/browse/SERVER-17310</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Now that we are on C++11 and have boost 1.56, we can, presumably make the choice of whether to use the std or boost components for concurrency (this may require that we polyfill the chrono components as well).&lt;/p&gt;</description>
                <environment></environment>
        <key id="184737">SERVER-17310</key>
            <summary>Provide stdx polyfills for std:: implementation of boost concurrency types</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="6" iconUrl="https://jira.mongodb.org/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="9">Done</resolution>
                                        <assignee username="schwerin@mongodb.com">Andy Schwerin</assignee>
                                    <reporter username="andrew.morrow@mongodb.com">Andrew Morrow</reporter>
                        <labels>
                            <label>C++11</label>
                    </labels>
                <created>Tue, 17 Feb 2015 22:44:46 +0000</created>
                <updated>Wed, 25 Jan 2017 22:01:21 +0000</updated>
                            <resolved>Thu, 28 May 2015 20:52:23 +0000</resolved>
                                                    <fixVersion>3.1.4</fixVersion>
                                    <component>Internal Code</component>
                                        <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="918417" author="xgen-internal-githook" created="Tue, 19 May 2015 21:00:55 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;andy10gen&apos;, u&apos;name&apos;: u&apos;Andy Schwerin&apos;, u&apos;email&apos;: u&apos;schwerin@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-17310&quot; title=&quot;Provide stdx polyfills for std:: implementation of boost concurrency types&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-17310&quot;&gt;&lt;del&gt;SERVER-17310&lt;/del&gt;&lt;/a&gt; Add polyfills for types from the &amp;lt;thread&amp;gt;, &amp;lt;mutex&amp;gt; and &amp;lt;condition_variable&amp;gt; headers.&lt;/p&gt;

&lt;p&gt;Demonstrate usage in mongo/util/concurrency/ticketholder.&lt;/p&gt;
{h,cpp}
&lt;p&gt;.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/e699454322eb5f02cc5ea865421188664382f150&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/e699454322eb5f02cc5ea865421188664382f150&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="918416" author="xgen-internal-githook" created="Tue, 19 May 2015 21:00:54 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;andy10gen&apos;, u&apos;name&apos;: u&apos;Andy Schwerin&apos;, u&apos;email&apos;: u&apos;schwerin@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-17310&quot; title=&quot;Provide stdx polyfills for std:: implementation of boost concurrency types&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-17310&quot;&gt;&lt;del&gt;SERVER-17310&lt;/del&gt;&lt;/a&gt; Rewrite V8 deadline monitor thread to eliminate use of boost::thread::interrupt().&lt;/p&gt;

&lt;p&gt;Boost thread interruption has no direct analog in C++11, so must be removed.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/95f2a43a398f07121d04af800bacd139eb43d7cd&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/95f2a43a398f07121d04af800bacd139eb43d7cd&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="918415" author="xgen-internal-githook" created="Tue, 19 May 2015 21:00:53 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;andy10gen&apos;, u&apos;name&apos;: u&apos;Andy Schwerin&apos;, u&apos;email&apos;: u&apos;schwerin@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-17310&quot; title=&quot;Provide stdx polyfills for std:: implementation of boost concurrency types&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-17310&quot;&gt;&lt;del&gt;SERVER-17310&lt;/del&gt;&lt;/a&gt; Remove use of boost::thread_group and boost::thread::interrupt from fail_point_test.&lt;/p&gt;

&lt;p&gt;These behaviors do not have direct analogs in the C++11 thread support, so must be removed.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/1626ee600966ac99fd8a8045fb2a3a37cd6f9274&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/1626ee600966ac99fd8a8045fb2a3a37cd6f9274&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="918414" author="xgen-internal-githook" created="Tue, 19 May 2015 21:00:52 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;andy10gen&apos;, u&apos;name&apos;: u&apos;Andy Schwerin&apos;, u&apos;email&apos;: u&apos;schwerin@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-17310&quot; title=&quot;Provide stdx polyfills for std:: implementation of boost concurrency types&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-17310&quot;&gt;&lt;del&gt;SERVER-17310&lt;/del&gt;&lt;/a&gt; Provide stdx polyfill for std::this_thread. Stop using boost::this_thread.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/9ab64834372d7d4c651bd41496f98afb7f44fbf7&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/9ab64834372d7d4c651bd41496f98afb7f44fbf7&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="850835" author="xgen-internal-githook" created="Thu, 12 Mar 2015 21:16:02 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;andy10gen&apos;, u&apos;name&apos;: u&apos;Andy Schwerin&apos;, u&apos;email&apos;: u&apos;schwerin@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-17310&quot; title=&quot;Provide stdx polyfills for std:: implementation of boost concurrency types&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-17310&quot;&gt;&lt;del&gt;SERVER-17310&lt;/del&gt;&lt;/a&gt; Make mongo::mutex a typedef of boost::mutex and remove mongo::scoped_lock.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/7cd9cf303c824478f0f6d60cadfcc1a25bdb21f2&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/7cd9cf303c824478f0f6d60cadfcc1a25bdb21f2&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="844345" author="xgen-internal-githook" created="Thu, 5 Mar 2015 22:36:11 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;andy10gen&apos;, u&apos;name&apos;: u&apos;Andy Schwerin&apos;, u&apos;email&apos;: u&apos;schwerin@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-17310&quot; title=&quot;Provide stdx polyfills for std:: implementation of boost concurrency types&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-17310&quot;&gt;&lt;del&gt;SERVER-17310&lt;/del&gt;&lt;/a&gt; Replace boost::*_mutex::scoped_lock with boost::lock_guard.&lt;/p&gt;

&lt;p&gt;Achieved via grep, sed and bash:&lt;br/&gt;
grep -Irl mutex::scoped_lock src/mongo | xargs sed -i.orig -E &apos;s/(boost::(recursive_|timed_)?)mutex::scoped_lock/boost::lock_guard&amp;lt;\1mutex&amp;gt;/&apos;&lt;/p&gt;

&lt;p&gt;Then, by converting boost::lock_guard to boost::unique_lock as appropriate.&lt;/p&gt;

&lt;p&gt;Finally, by removing unused mongo::mutex::try_lock.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/59a9a04651486763b49ddb706a195bebccf76642&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/59a9a04651486763b49ddb706a195bebccf76642&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="840239" author="schwerin" created="Mon, 2 Mar 2015 16:10:10 +0000"  >&lt;p&gt;Proposed plan of attack:&lt;/p&gt;

&lt;ol&gt;
	&lt;li&gt;&lt;del&gt;Replace boost::&amp;#42;_mutex::scoped_lock uses with boost::unique_lock&amp;lt;&amp;#42;_mutex&amp;gt;&lt;/del&gt;&lt;/li&gt;
	&lt;li&gt;&lt;del&gt;Replace mongo::mutex with boost::mutex&lt;/del&gt;&lt;/li&gt;
	&lt;li&gt;Introduce stdx:: polyfill for concurrency types based on boost implementation, only.  Types and namespaces to introduce are as follows:
	&lt;ol&gt;
		&lt;li&gt;stdx::this_thread in mongo/stdx/thread.h&lt;/li&gt;
		&lt;li&gt;stdx::thread in mongo/stdx/thread.h&lt;/li&gt;
		&lt;li&gt;stdx::mutex in mongo/stdx/mutex.h&lt;/li&gt;
		&lt;li&gt;stdx::timed_mutex in mongo/stdx/mutex.h&lt;/li&gt;
		&lt;li&gt;stdx::recursive_mtuex in mongo/stdx/mutex.h&lt;/li&gt;
		&lt;li&gt;stdx::condition_variable in mongo/stdx/condition_variable.h&lt;/li&gt;
	&lt;/ol&gt;
	&lt;/li&gt;
	&lt;li&gt;Convert all boost:: references to the introduced types to stdx:: refeferences&lt;/li&gt;
	&lt;li&gt;Convert remaining calls to non-C+&lt;ins&gt;11 interfaces to C&lt;/ins&gt;+11 equivalents.  This will require stdx::chrono.&lt;/li&gt;
	&lt;li&gt;Introduce standard library implementation of polyfill on supported platforms&lt;/li&gt;
&lt;/ol&gt;
</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="224135">SERVER-19760</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>7.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10011" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Backwards Compatibility</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10038"><![CDATA[Fully Compatible]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Mon, 2 Mar 2015 16:01:03 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        8 years, 39 weeks, 1 day ago
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18254" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Dependencies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[]]></customfieldvalue>


                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                    <customfield id="customfield_14262" key="com.atlassian.jira.plugin.system.customfieldtypes:datepicker">
                        <customfieldname>End date</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Thu, 28 May 2015 23:59:59 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10057" key="com.atlassian.jira.toolkit:lastusercommented">
                        <customfieldname>Last comment by Customer</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>true</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10056" key="com.atlassian.jira.toolkit:lastupdaterorcommenter">
                        <customfieldname>Last commenter</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>crystal.horn@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            8 years, 39 weeks, 1 day ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>andrew.morrow@mongodb.com</customfieldvalue>
            <customfieldvalue>schwerin@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hrlc9j:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hs6daf:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>162471</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_23361" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Requested By</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                <customfield id="customfield_14261" key="com.atlassian.jira.plugin.system.customfieldtypes:datepicker">
                        <customfieldname>Start date</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Tue, 17 Feb 2015 00:00:00 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10053" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>Time In Status</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_22870" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Triagers</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_14350" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>serverRank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hsg8sv:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                    </customfields>
    </item>
</channel>
</rss>