Skip to content
Alexy Pellegrini edited this page Apr 3, 2022 · 29 revisions

Not Enough Standards Wiki

Welcome on Not Enough Standards' Wiki!

Here, you will find the documentation of the library, and also some examples.

The Wiki is still a work in progress, and there are probably a lot of grammatical errors and typos.

The documentation is organized by file. Each file of the library is a complete set of features. The library is currently composed of the following files:

Header Features Standard (minimum)
shared_library.hpp Provide a simple interface for shared library loading. i.e. shared objects (.so) and dynamic-link libraries (.dll). C++17
process.hpp Provide an interface for creating processes and modify or get information about the current process. Defines more features if pipe.hpp is available. C++17
semaphore.hpp Provide an interface for semaphores and timed semaphores management. A semaphore is a synchronization primitive that use a resource counter. When trying to acquire a resource, the calling thread is blocked until a resource is available. C++17
pipe.hpp Provide standard streambufs and streams for pipe management. Support both anonymous and named pipes (for inter-process communication). A pipe is a data stream between a reader and a writer. For example, the standard output is a pipe where the reader is, in most cases, a display and the writer is the program. C++17
shared_memory.hpp Provide an interface for shared memory creation and mapping. Shared memory is a segment of memory that can be shared among multiple processes, using a literal identifier. C++17
named_mutex.hpp Provide an interface for cross-process mutexes management. It is similar to std::mutex except that it can be shared between multiple processes using its name. It is useful to synchronize shared memory access. C++17
named_semaphore.hpp Provide an interface for named semaphore and timed named semaphore management. As named mutexes, a named semaphore is designed to be shared between multiple processes. C++17
thread_pool.hpp Provides a thread pool implementation, plus task lists to manage complex batches with internal and external synchronisation functionalities. C++20
Clone this wiki locally