Skip to content

create_barrierCreateBarrierCreateBarriercreate_barrierT_create_barrier🔗

Short description🔗

create_barrierCreateBarrierCreateBarriercreate_barrierT_create_barrier — Create a barrier synchronization object.

Signature🔗

create_barrier( attribute.name AttribName, attribute.value AttribValue, number TeamSize, out barrier BarrierHandle )void CreateBarrier( const HTuple& AttribName, const HTuple& AttribValue, const HTuple& TeamSize, HTuple* BarrierHandle )static void HOperatorSet.CreateBarrier( HTuple attribName, HTuple attribValue, HTuple teamSize, out HTuple barrierHandle )def create_barrier( attrib_name: MaybeSequence[Union[int, float, str]], attrib_value: MaybeSequence[Union[int, float, str]], team_size: int ) -> HHandle

Herror T_create_barrier( const Htuple AttribName, const Htuple AttribValue, const Htuple TeamSize, Htuple* BarrierHandle )

void HBarrier::HBarrier( const HTuple& AttribName, const HTuple& AttribValue, Hlong TeamSize )

void HBarrier::HBarrier( const HString& AttribName, const HString& AttribValue, Hlong TeamSize )

void HBarrier::HBarrier( const char* AttribName, const char* AttribValue, Hlong TeamSize )

void HBarrier::HBarrier( const wchar_t* AttribName, const wchar_t* AttribValue, Hlong TeamSize ) (Windows only)

public HBarrier( HTuple attribName, HTuple attribValue, int teamSize )

public HBarrier( string attribName, string attribValue, int teamSize )

void HBarrier::CreateBarrier( const HTuple& AttribName, const HTuple& AttribValue, Hlong TeamSize )

void HBarrier::CreateBarrier( const HString& AttribName, const HString& AttribValue, Hlong TeamSize )

void HBarrier::CreateBarrier( const char* AttribName, const char* AttribValue, Hlong TeamSize )

void HBarrier::CreateBarrier( const wchar_t* AttribName, const wchar_t* AttribValue, Hlong TeamSize ) (Windows only)

void HBarrier.CreateBarrier( HTuple attribName, HTuple attribValue, int teamSize )

void HBarrier.CreateBarrier( string attribName, string attribValue, int teamSize )

Description🔗

A barrier is a synchronization object blocking a thread until a previous defined number of threads have reached this barrier. create_barrierCreateBarrier allocates and initializes the barrier object returned in BarrierHandlebarrierHandlebarrier_handle according to the attributes specified in AttribNameattribNameattrib_name and AttribValueattribValueattrib_value. AttribNameattribNameattrib_name specifies the attribute class and AttribValueattribValueattrib_value the kind of the barrier. The description beneath lists all barrier kinds supported by following parameter classes:

  • ''"" empty string sets the default attributes.

  • 'type'"type" specifies what happens if a thread waits at a barrier:

    • 'sleep'"sleep" simply suspends the calling thread (default).

    • 'spin'"spin" a fast barrier implementation for short waits that waits busy.

The TeamSizeteamSizeteam_size argument specifies the number of threads that must call wait_barrierWaitBarrier before any of them successfully return from waiting. The value hold in TeamSizeteamSizeteam_size must be greater than zero.

Execution information🔗

Execution information
  • Multithreading type: reentrant (runs in parallel with non-exclusive operators).

  • Multithreading scope: global (may be called from any thread).

  • Processed without parallelization.

Parameters🔗

AttribNameattribNameattrib_name (input_control) attribute.name(-array) → (string / integer / real)HTuple (HString / Hlong / double)HTuple (string / int / long / double)MaybeSequence[Union[int, float, str]]Htuple (char* / Hlong / double)

Barrier attribute.

Default: [][]
List of values: 'type'"type"

AttribValueattribValueattrib_value (input_control) attribute.value(-array) → (string / integer / real)HTuple (HString / Hlong / double)HTuple (string / int / long / double)MaybeSequence[Union[int, float, str]]Htuple (char* / Hlong / double)

Barrier attribute value.

Number of elements: AttribValue == AttribName
Default: [][]
List of values: 'sleep', 'spin'"sleep", "spin"

TeamSizeteamSizeteam_size (input_control) number → (integer)HTuple (Hlong)HTuple (int / long)intHtuple (Hlong)

Barrier team size.

Default: 11

BarrierHandlebarrierHandlebarrier_handle (output_control) barrier → (handle)HTuple (HHandle)HBarrier, HTuple (IntPtr)HHandleHtuple (handle)

Barrier synchronization object.

Result🔗

create_barrierCreateBarrier returns 2 (H_MSG_TRUE) if all parameters are correct. If necessary, an exception is raised.

Combinations with other operators🔗

Combinations

Possible successors

wait_barrierWaitBarrier, clear_barrierClearBarrier

Module🔗

Foundation