<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:06:52 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-44750] Rename mongo::Latch to Mutex</title>
                <link>https://jira.mongodb.org/browse/SERVER-44750</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Our &lt;a href=&quot;https://github.com/mongodb/mongo/blob/b077212a48653b1668cee67f6888cd65b5d123f6/src/mongo/platform/mutex.h#L44&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Latch&lt;/a&gt; class is really a generic interface for a Mutex, but because we don&apos;t use the &quot;latch&quot; terminology anywhere else in our codebase, the naming can be confusing.&lt;/p&gt;

&lt;p&gt;The term &quot;latch&quot; term also conficts with the countdown latch synchronization structure introduced in C++20 as &lt;a href=&quot;https://en.cppreference.com/w/cpp/experimental/latch&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;std::latch&lt;/a&gt;.&lt;/p&gt;</description>
                <environment></environment>
        <key id="1016539">SERVER-44750</key>
            <summary>Rename mongo::Latch to Mutex</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="12300">Won&apos;t Do</resolution>
                                        <assignee username="backlog-server-servicearch">Backlog - Service Architecture</assignee>
                                    <reporter username="louis.williams@mongodb.com">Louis Williams</reporter>
                        <labels>
                    </labels>
                <created>Wed, 20 Nov 2019 22:17:09 +0000</created>
                <updated>Tue, 6 Dec 2022 02:41:50 +0000</updated>
                            <resolved>Thu, 24 Feb 2022 21:55:30 +0000</resolved>
                                                                                        <votes>1</votes>
                                    <watches>7</watches>
                                                                                                                <comments>
                            <comment id="4375670" author="JIRAUSER1262719" created="Thu, 24 Feb 2022 21:55:30 +0000"  >&lt;p&gt;We haven&#8217;t heard back from you for at least one calendar year, so this issue is being closed. If this is still an issue for you, please provide additional information and we will reopen the ticket.&lt;/p&gt;</comment>
                            <comment id="2771899" author="ben.caimano" created="Thu, 30 Jan 2020 01:35:46 +0000"  >&lt;p&gt;This ticket came up in conjunction with &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-45793&quot; title=&quot;Improve mongo::Mutex contract&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-45793&quot;&gt;&lt;del&gt;SERVER-45793&lt;/del&gt;&lt;/a&gt;. While latch is &lt;a href=&quot;https://stackoverflow.com/questions/3111403/what-is-the-difference-between-a-lock-and-a-latch-in-the-context-of-concurrent-a&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;a term of art&lt;/a&gt; for databases, I can freely acknowledge that &lt;tt&gt;Lockable&lt;/tt&gt; would be easier for our developers to understand. I&apos;d like this ticket to make our internal users&apos; daily lives easier.&lt;/p&gt;

&lt;p&gt;Our original motivation for the &lt;tt&gt;mongo::Latch&lt;/tt&gt; type was to allow our developers to have an abstract base class for lockable types that could represent an arbitrary internal synchronized resource. I&apos;ve done a small audit of our use of stdx::unique_guard in function signatures and nearly every reasonable usage takes it by pointer or reference instead of by value. I&apos;d like to propose the following be done in the course of this ticket:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Convert &lt;tt&gt;stdx::unique_lock&amp;lt;Latch&amp;gt;&lt;/tt&gt; local and global variable initialization to just &lt;tt&gt;stdx::unique_lock&lt;/tt&gt; so everyone can enjoy CTAD in v4.2 and beyond.&lt;/li&gt;
	&lt;li&gt;Introduce a LockableAdaptor to go with &lt;a href=&quot;https://github.com/mongodb/mongo/blob/101eb1694568df1ff086a460cc6c511eacc05860/src/mongo/util/lockable_adapter.h#L47-L72&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;BasicLockableAdaptor&lt;/a&gt;.&lt;/li&gt;
	&lt;li&gt;Ban &lt;tt&gt;stdx::unique_lock&amp;lt;Foo&amp;gt;*&lt;/tt&gt; and &lt;tt&gt;stdx::unique_lock&amp;lt;Foo&amp;gt;&amp;amp;&lt;/tt&gt; via linter and replace their use with BasicLockableAdaptor or LockableAdaptor. We&apos;re already touching these lines with the conversion, we should make them more flexible as we have with using &lt;tt&gt;WithLock&lt;/tt&gt;.&lt;/li&gt;
	&lt;li&gt;Lastly, rename mongo::Latch to mongo::NamedLockableInterface.&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="2561996" author="bruce.lucas@10gen.com" created="Fri, 22 Nov 2019 16:07:43 +0000"  >&lt;p&gt;I don&apos;t how it impacts this, but there is also confusingly a lock type called Mutex.&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>3.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                <customfield id="customfield_12751" key="com.atlassian.jira.plugin.system.customfieldtypes:multiselect">
                        <customfieldname>Assigned Teams</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="25132"><![CDATA[Service Arch]]></customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Fri, 22 Nov 2019 16:07:43 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        1 year, 49 weeks, 6 days 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_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>alexander.golin@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            1 year, 49 weeks, 6 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>backlog-server-servicearch</customfieldvalue>
            <customfieldvalue>ben.caimano@mongodb.com</customfieldvalue>
            <customfieldvalue>bruce.lucas@mongodb.com</customfieldvalue>
            <customfieldvalue>lauren.lewis@mongodb.com</customfieldvalue>
            <customfieldvalue>louis.williams@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hw50tb:</customfieldvalue>

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

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</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_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|hw4n2n:</customfieldvalue>

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