Multithreaded Programming Guide

Exit Print View

Updated: July 2014
 
 

New System Calls For Reliable Multithreaded Programming

In the Oracle Solaris 11 release, the following new APIs and flags have been added to make multithreaded programs more reliable:

*at() functions – Consists of versions of file handling system calls which take the working directory for relative pathnames as an argument, to avoid races with chdir(2) calls between multiple threads.
Flags – The following flags close a race condition between the open(2), dup(2), and dup2(2) calls and a following call to fcntl(2) function to set the FD_CLOEXEC flag by setting it atomically in the creation system call.
  • O_CLOEXEC flag to open(2)

  • F_DUPFD_CLOEXEC() and F_DUP2FD_CLOEXEC() arguments to fcntl(2)