View Issue Details

IDProjectCategoryView StatusLast Update
00005321003.1(2008)/Issue 7System Interfacespublic2019-06-10 08:55
Reporterweeks Assigned Toajosey  
PrioritynormalSeverityEditorialTypeClarification Requested
Status ClosedResolutionAccepted As Marked 
NameNathan Weeks
OrganizationIowa State University HPC Group
User Reference
Sectionsemctl
Page Number1833
Line Number58506
Interp Status---
Final Accepted Text0000532:0001090
Summary0000532: clarify atomicity of semctl()
DescriptionIt would be helpful to clarify the atomicity of semctl() commands, especially
SETALL; e.g., in the unlikely case of concurrent SETALL operations, or in the
more likely case when a process is blocked in a semop(), and the values of the
semaphores in the set are altered by a call to semctl() in another process.

For example, if a semaphore set comprises two semaphores with values {0, 0},
and a process is blocked in a call to semop() with sem_ops {-1, 0}, it would
ideally not be possible for this semop() to complete during a call to
semctl(...,SETALL,...) in another process with arg.array values of {1, 1}.

Regarding existing practice, the Linux semctl() manual page contains the
following wording, which seems to imply issuing a SETALL or SETVAL command
when there are pending semop() operations is safe on Linux:

"...If the changes to semaphore values would permit blocked semop(2) calls in
other processes to proceed, then those processes are woken up."
Desired ActionClarify the atomicity requirements for semctl().
Tagstc2-2008

Activities

msbrown

2012-01-12 16:49

manager   bugnote:0001090

Add the following new paragraph after the line 58506:

Each operation shall be performed atomically.

Issue History

Date Modified Username Field Change
2012-01-02 22:41 weeks New Issue
2012-01-02 22:41 weeks Status New => Under Review
2012-01-02 22:41 weeks Assigned To => ajosey
2012-01-02 22:41 weeks Name => Nathan Weeks
2012-01-02 22:41 weeks Organization => Iowa State University HPC Group
2012-01-02 22:41 weeks Section => semctl
2012-01-02 22:41 weeks Page Number => 0
2012-01-02 22:41 weeks Line Number => 0
2012-01-12 16:49 msbrown Page Number 0 => 1833
2012-01-12 16:49 msbrown Interp Status => ---
2012-01-12 16:49 msbrown Note Added: 0001090
2012-01-12 16:49 msbrown Status Under Review => Resolution Proposed
2012-01-12 16:49 msbrown Resolution Open => Accepted As Marked
2012-01-12 16:49 msbrown Tag Attached: tc2-2008
2012-01-12 16:50 msbrown Line Number 0 => 58506
2012-01-12 16:50 msbrown Final Accepted Text => 0000532:0001090
2012-01-13 09:20 geoffclare Status Resolution Proposed => Resolved
2019-06-10 08:55 agadmin Status Resolved => Closed