PIP 5.6.1
Platform-Independent Primitives
Files | Classes
Thread

Multithreading support. More...

Files

file  piblockingqueue.h
 Blocking queue template.
 
file  piconditionvar.h
 Condition variable for waiting and notification between threads.
 
file  pigrabberbase.h
 Grabber thread base class.
 
file  pimutex.h
 Basic interthread lock.
 
file  pipipelinethread.h
 Thread-based pipeline for multi-stage data processing.
 
file  piprotectedvariable.h
 Thread-safe variable.
 
file  pireadwritelock.h
 Read-write lock with multiple readers or one writer.
 
file  pisemaphore.h
 Counting semaphore for shared resources.
 
file  pispinlock.h
 Spinlock with busy waiting.
 
file  pithread.h
 Runtime thread object with optional loop execution.
 
file  pithreadmodule.h
 Umbrella header for the thread module.
 
file  pithreadnotifier.h
 Counting notification helper for coordination between threads.
 
file  pithreadpoolexecutor.h
 Thread pool executor Executes tasks in a pool of worker threads.
 
file  pithreadpoolloop.h
 Parallel loop helper.
 
file  pitimer.h
 Timer object backed by an internal thread.
 

Classes

class  PIBlockingQueue< T >
 Thread-safe queue that supports blocking operations - waits for space when storing and waits for element when retrieving. More...
 
class  PIConditionVariable
 Condition variable used together with external PIMutex. More...
 
class  PIGrabberBase< T >
 Base polling grabber thread with a pending queue, recording virtual methods, and a last-item snapshot. More...
 
class  PIMutex
 Mutex for mutual exclusion between threads. More...
 
class  PIMutexLocker
 Scope guard that locks a PIMutex in constructor and unlocks it in destructor. More...
 
class  PIPipelineThread< Tin, Tout >
 Thread-based pipeline template class for multi-stage data processing. More...
 
class  PIProtectedVariable< T >
 Thread-safe variable template class. More...
 
class  PIReadWriteLock
 Synchronization primitive that allows concurrent readers and exclusive writer access. More...
 
class  PIReadLocker
 Scope guard that acquires reader access in constructor and releases it in destructor. More...
 
class  PIWriteLocker
 Scope guard that acquires writer access in constructor and releases it in destructor. More...
 
class  PISemaphore
 Counting semaphore that tracks available resource units. More...
 
class  PISemaphoreLocker
 Scope guard that acquires semaphore units in constructor and releases them in destructor. More...
 
class  PISpinlock
 Lock based on atomic spinning for very short critical sections. More...
 
class  PISpinlockLocker
 Scope guard that locks a PISpinlock in constructor and unlocks it in destructor. More...
 
class  PIThread
 Thread object that executes work on a dedicated system thread. More...
 
class  PIThreadNotifier
 Thread notifier class for synchronization between threads. More...
 
class  PIThreadPoolExecutor
 Fixed-size pool of worker threads for fire-and-forget tasks. More...
 
class  PIThreadPoolLoop
 Helper that runs one integer range across a fixed set of worker threads. More...
 
class  PITimer
 Periodic timer that emits ticks from an internal worker thread. More...
 

Detailed Description

Multithreading support.

Building with CMake

find_package(PIP REQUIRED)
target_link_libraries([target] PIP)
Common

This module provides thread, timer and synchronization primitives for runtime work.

Authors

Ivan Pelipenko peri4.nosp@m.ko@y.nosp@m.andex.nosp@m..ru; Andrey Bychkov work..nosp@m.a.b@.nosp@m.yande.nosp@m.x.ru;