View Issue Details

IDProjectCategoryView StatusLast Update
00006911003.1(2013)/Issue7+TC1System Interfacespublic2019-06-10 08:55
Reporterphilip-guenther Assigned To 
PrioritynormalSeverityEditorialTypeClarification Requested
Status ClosedResolutionAccepted 
NamePhilip Guenther
OrganizationOpenBSD
User Reference
Sectionwait()
Page Number2204-2205
Line Number69925-69939
Interp Status---
Final Accepted Text
Summary0000691: specification of *stat_loc values confused by XSI shading; incorrect statement of wait() behavior
DescriptionIf you cut out the XSI shading, the spec starts repeating itself:

    If the information pointed to by stat_loc was stored by a call to
    waitpid() that specified the WUNTRACED flag <...>, exactly one of the
    macros WIFEXITED(*stat_loc), WIFSIGNALED(*stat_loc), and
    WIFSTOPPED(*stat_loc) shall evaluate to a non-zero value.

    If the information pointed to by stat_loc was stored by a call to
    waitpid() that specified the WUNTRACED <...> flags, exactly one of the
    macros WIFEXITED(*stat_loc), WIFSIGNALED(*stat_loc),
    WIFSTOPPED(*stat_loc), <...> shall evaluate to a non-zero value.


The two paragraphs after that have the same problem:

    If the information pointed to by stat_loc was stored by a call to
    waitpid() that did not specify the WUNTRACED <...> flags, or by a call
    to the wait() function, exactly one of the macros WIFEXITED(*stat_loc)
    and WIFSIGNALED(*stat_loc) shall evaluate to a non-zero value.

    If the information pointed to by stat_loc was stored by a call to
    waitpid() that did not specify the WUNTRACED flag <...>, or by a call
    to the wait() function, exactly one of the macros WIFEXITED(*stat_loc),
    WIFSIGNALED(*stat_loc), <...> shall evaluate to a non-zero value.

...but they *also* have a problem when you include the XSI text:

    If the information pointed to by stat_loc was stored by a call to
    waitpid() that did not specify the WUNTRACED or WCONTINUED flags,
    or by a call to the wait() function, exactly one of the macros
    WIFEXITED(*stat_loc) and WIFSIGNALED(*stat_loc) shall evaluate to
    a non-zero value.

    If the information pointed to by stat_loc was stored by a call to
    waitpid() that did not specify the WUNTRACED flag and specified the
    WCONTINUED flag, or by a call to the wait() function, exactly one
    of the macros WIFEXITED(*stat_loc), WIFSIGNALED(*stat_loc), and
    WIFCONTINUED(*stat_loc) shall evaluate to a non-zero value.

Those gives contradicting statements about wait(), the latter suggesting WIFCONTINUED(*stat_loc) can evaluate to a non-zero value for it, which is wrong.

Desired ActionChange the XSI marking on the second and fourth paragraphs (lines 69929-69932 and 69936-69939) to completely enclose those paragraphs. Remove the reference to wait() in the fourth paragraph, ala:
    If the information pointed to by stat_loc was stored by a call to
    waitpid() that did not specify the WUNTRACED flag and specified the
    WCONTINUED flag, exactly one of the macros WIFEXITED(*stat_loc),
    WIFSIGNALED(*stat_loc), and WIFCONTINUED(*stat_loc) shall evaluate
    to a non-zero value.
Tagstc2-2008

Activities

There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2013-05-07 08:07 philip-guenther New Issue
2013-05-07 08:07 philip-guenther Name => Philip Guenther
2013-05-07 08:07 philip-guenther Organization => OpenBSD
2013-05-07 08:07 philip-guenther Section => wait()
2013-05-07 08:07 philip-guenther Page Number => 2204-2205
2013-05-07 08:07 philip-guenther Line Number => 69925-69939
2013-05-16 16:13 Don Cragun Interp Status => ---
2013-05-16 16:13 Don Cragun Status New => Resolved
2013-05-16 16:13 Don Cragun Resolution Open => Accepted
2013-05-16 16:13 Don Cragun Tag Attached: tc2-2008
2019-06-10 08:55 agadmin Status Resolved => Closed