Ninja
Public Types | Public Member Functions | Public Attributes | List of all members
Jobserver::Config Struct Reference

A Jobserver::Config models how to access or implement a GNU jobserver implementation. More...

#include <jobserver.h>

Public Types

enum  Mode {
  kModeNone = 0 , kModePipe , kModePosixFifo , kModeWin32Semaphore ,
  kModeDefault = kModePosixFifo
}
 Different implementation modes for the slot pool. More...
 

Public Member Functions

bool HasMode ()
 Return true if this instance matches an active implementation mode. More...
 

Public Attributes

Mode mode = kModeNone
 Implementation mode for the pool. More...
 
std::string path
 For kModeFifo, this is the path to the Unix FIFO to use. More...
 

Detailed Description

A Jobserver::Config models how to access or implement a GNU jobserver implementation.

Definition at line 106 of file jobserver.h.

Member Enumeration Documentation

◆ Mode

Different implementation modes for the slot pool.

kModeNone means there is no pool.

kModePipe means that --jobserver-auth=R,W is used to pass a pair of file descriptors to client processes. This also matches --jobserver-fds=R,W which is an old undocumented variant of the same scheme. This mode is not supported by Ninja, but recognized by the parser.

kModePosixFifo means that --jobserver-auth=fifo:PATH is used to pass the path of a Posix FIFO to client processes. This is not supported on Windows. Implemented by GNU Make 4.4 and above when --jobserver-style=fifo is used.

kModeWin32Semaphore means that --jobserver-auth=SEMAPHORE_NAME is used to pass the name of a Win32 semaphore to client processes. This is not supported on Posix.

kModeDefault is the default mode to enable on the current platform. This is an alias for kModeWin32Semaphore on Windows ,and kModePosixFifo on Posix.

Enumerator
kModeNone 
kModePipe 
kModePosixFifo 
kModeWin32Semaphore 
kModeDefault 

Definition at line 129 of file jobserver.h.

Member Function Documentation

◆ HasMode()

bool Jobserver::Config::HasMode ( )
inline

Return true if this instance matches an active implementation mode.

This does not try to validate configuration parameters though.

Definition at line 150 of file jobserver.h.

References kModeNone, and mode.

Member Data Documentation

◆ mode

Mode Jobserver::Config::mode = kModeNone

Implementation mode for the pool.

Definition at line 142 of file jobserver.h.

Referenced by Jobserver::Client::Create(), HasMode(), Jobserver::ParseMakeFlagsValue(), Jobserver::ParseNativeMakeFlagsValue(), and TEST().

◆ path

std::string Jobserver::Config::path

For kModeFifo, this is the path to the Unix FIFO to use.

For kModeSemaphore, this is the name of the Win32 semaphore to use.

Definition at line 146 of file jobserver.h.

Referenced by Jobserver::Client::Create(), Jobserver::ParseMakeFlagsValue(), and TEST().


The documentation for this struct was generated from the following file: