Files
qt6-migration-pipeline/external/rti_connext_dds-7.7.0/include/ndds/osapi/osapi_barrier.h
T
torsten 77c67c12ca Execute the same instructions but now for tools in folders you are getti
Entire-Metadata: .entire/metadata/fb87247f-2a75-407e-b336-cbc8c20ba5a6
Entire-Session: fb87247f-2a75-407e-b336-cbc8c20ba5a6
Entire-Strategy: manual-commit
2026-09-24 16:24:51 +00:00

67 lines
1.8 KiB
C

/*
* (c) Copyright, Real-Time Innovations, 2016-2024.
* All rights reserved.
*
* No duplications, whole or partial, manual or electronic, may be made
* without express written permission. Any such copies, or
* revisions thereof, must display this notice unaltered.
* This code contains trade secrets of Real-Time Innovations, Inc.
*/
#ifndef osapi_barrier_h
#define osapi_barrier_h
#include "log/log_common.h"
#include "osapi/osapi_log.h"
#include "osapi/osapi_dll.h"
#include "osapi/osapi_semaphore.h"
#ifdef __cplusplus
extern "C" {
#endif
/** @internal \file
* \brief Barrier semaphore
*/
/** @internal \defgroup RTIOsapiBarrierClass RTIOsapiBarrier
* \ingroup RTIOsapiModule
* \brief OS independent encapsulation of a barrier semaphore/
*/
struct RTIOsapiBarrier;
/** @internal \ingroup RTIOsapiSemaphoreClass
*
* @brief Creates a new barrier semaphore.
*
* @param barrierSize \b In. Size of the barrier. Equivalent to the number of
* threads to synchronize.
*
*/
extern RTIOsapiDllExport struct RTIOsapiBarrier *RTIOsapiBarrier_new(
RTI_INT32 barrierSize);
/** @internal \ingroup RTIOsapiSemaphoreClass
*
* @brief Deletes a RTIOsapiBarrier.
*/
extern RTIOsapiDllExport void RTIOsapiBarrier_delete(
struct RTIOsapiBarrier *self);
/** @internal \ingroup RTIOsapiSemaphoreClass
*
* @brief Wait for all the threads to arrive to the barrier.
*
* The operation will block indefinitely until all the expected threads also
* call wait on this barrier. After the last the threads arrives, this
* operation will unblock as efficiently as the OS provides.
*/
extern RTIOsapiDllExport RTIOsapiSemaphoreStatus
RTIOsapiBarrier_wait(struct RTIOsapiBarrier *self);
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* osapi_barrier_h */