A NOTE has been added to this issue. 
====================================================================== 
https://austingroupbugs.net/view.php?id=708 
====================================================================== 
Reported By:                dalias
Assigned To:                
====================================================================== 
Project:                    1003.1(2013)/Issue7+TC1
Issue ID:                   708
Category:                   System Interfaces
Type:                       Enhancement Request
Severity:                   Editorial
Priority:                   normal
Status:                     New
Name:                       Rich Felker 
Organization:               musl libc 
User Reference:              
Section:                    XSH 2.9.1 Thread-Safety 
Page Number:                unknown 
Line Number:                unknown 
Interp Status:              --- 
Final Accepted Text:         
====================================================================== 
Date Submitted:             2013-06-07 21:23 UTC
Last Modified:              2023-08-14 16:25 UTC
====================================================================== 
Summary:                    Make mblen, mbtowc, and wctomb thread-safe for
alignment with C11
====================================================================== 

---------------------------------------------------------------------- 
 (0006433) geoffclare (manager) - 2023-08-14 16:25
 https://austingroupbugs.net/view.php?id=708#c6433 
---------------------------------------------------------------------- 
In all of these changes the placeholder <i>XXXX</i> should be replaced with
the name of the function.  Page and line numbers are for Issue 8 draft
2.1.

On page 1274 line 42635 section mblen(), and
page 1285 line 42996 section mbtowc(), and
page 2255 line 72488 section wctomb(), change:<blockquote>The functionality
described on this reference page is aligned with the ISO C standard. Any
conflict between the requirements described here and the ISO C standard is
unintentional. This volume of POSIX.1-202x defers to the ISO C
standard.</blockquote>to:<blockquote>Except for requirements relating to
data races, the functionality described on this reference page is aligned
with the ISO C standard. Any other conflict between the requirements
described here and the ISO C standard is unintentional. This volume of
POSIX.1-202x defers to the ISO C standard for all <i>XXXX</i>()
functionality except in relation to data races.</blockquote>
On page 1274 line 42652 section mblen(), and
page 1285 line 43015 section mbtowc(), and
page 2255 line 72505 section wctomb(), change:<blockquote>[CX]The
<i>XXXX</i>() function need not be
thread-safe.[/CX]</blockquote>to:<blockquote>The <i>XXXX</i>() function
[CX]need not be thread-safe; however, it[/CX] shall avoid data races with
all other functions.</blockquote>
On page 1274 line 42669 section mblen(), and
page 1286 line 43032 section mbtowc(), and
page 2255 line 72522 section wctomb(), change RATIONALE from "None"
to:<blockquote>When the ISO C standard introduced threads in C11, it
required <i>XXXX</i>() to avoid data races (with itself as well as with
other functions), whereas POSIX.1-2008 did not require it to be
thread-safe, and in many implementations it did not avoid data races with
itself and still does not. The ISO C committee intend to change the
requirements in a future version of the ISO C standard, but since POSIX.1
currently refers to C17 it is necessary for it not to defer to the ISO C
standard regarding data races in order to continue to allow this function
not to avoid data races with itself.</blockquote>
On page 1274 line 42669 section mblen(), and
page 1286 line 43034 section mbtowc(), and
page 2256 line 72524 section wctomb(), change FUTURE DIRECTIONS from "None"
to:<blockquote>It is expected that a change in a future version of the ISO
C standard will allow a future version of this standard to remove the data
race exception from the statement that it defers to the ISO C
standard.</blockquote> 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2013-06-07 21:23 dalias         New Issue                                    
2013-06-07 21:23 dalias         Name                      => Rich Felker     
2013-06-07 21:23 dalias         Organization              => musl libc       
2013-06-07 21:23 dalias         Section                   => XSH 2.9.1
Thread-Safety
2013-06-07 21:23 dalias         Page Number               => unknown         
2013-06-07 21:23 dalias         Line Number               => unknown         
2013-06-08 09:12 geoffclare     Note Added: 0001647                          
2013-06-08 09:13 geoffclare     Tag Attached: C11                            
2013-06-08 12:14 dalias         Note Added: 0001648                          
2013-06-13 15:35 nick           Note Added: 0001651                          
2013-12-03 21:09 torvald        Issue Monitored: torvald                     
2022-08-15 15:11 nick           Note Added: 0005933                          
2023-01-26 12:11 geoffclare     Note Added: 0006139                          
2023-08-14 16:25 geoffclare     Note Added: 0006433                          
======================================================================


  • [1003.1(2013... Austin Group Bug Tracker via austin-group-l at The Open Group
    • [1003.1... Austin Group Bug Tracker via austin-group-l at The Open Group
    • [1003.1... Austin Group Bug Tracker via austin-group-l at The Open Group
    • [1003.1... Austin Group Bug Tracker via austin-group-l at The Open Group
    • [1003.1... Austin Group Bug Tracker via austin-group-l at The Open Group

Reply via email to