Legion Runtime
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Legion::LegionHandshake Class Reference

#include <legion.h>

Inheritance diagram for Legion::LegionHandshake:
Legion::Unserializable< LegionHandshake > Legion::MPILegionHandshake

Public Member Functions

 LegionHandshake (const LegionHandshake &rhs)
 
bool operator== (const LegionHandshake &h) const
 
bool operator< (const LegionHandshake &h) const
 
LegionHandshakeoperator= (const LegionHandshake &rhs)
 
void ext_handoff_to_legion (void) const
 
void ext_wait_on_legion (void) const
 
void legion_handoff_to_ext (void) const
 
void legion_wait_on_ext (void) const
 
PhaseBarrier get_legion_wait_phase_barrier (void) const
 
PhaseBarrier get_legion_arrive_phase_barrier (void) const
 
void advance_legion_handshake (void) const
 
- Public Member Functions inherited from Legion::Unserializable< LegionHandshake >
size_t legion_buffer_size (void)
 
size_t legion_serialize (void *buffer)
 
size_t legion_deserialize (const void *buffer)
 

Protected Member Functions

FRIEND_ALL_RUNTIME_CLASSES LegionHandshake (Internal::LegionHandshakeImpl *impl)
 

Protected Attributes

Internal::LegionHandshakeImpl * impl
 

Detailed Description

This class provides a light-weight synchronization primitive for external applications to use when performing synchronization with Legion tasks. It allows for control to be passed from the external application into Legion and then for control to be handed back to the external application from Legion. The user can configure which direction occurs first when constructing the handshake object.

See also
Runtime::create_external_handshake

Member Function Documentation

◆ advance_legion_handshake()

void Legion::LegionHandshake::advance_legion_handshake ( void  ) const

Advance the handshake associated with the Legion side

◆ ext_handoff_to_legion()

void Legion::LegionHandshake::ext_handoff_to_legion ( void  ) const

Non-blocking call to signal to Legion that this participant is ready to pass control to Legion.

◆ ext_wait_on_legion()

void Legion::LegionHandshake::ext_wait_on_legion ( void  ) const

A blocking call that will cause this participant to wait for all Legion participants to hand over control to the external application.

◆ get_legion_arrive_phase_barrier()

PhaseBarrier Legion::LegionHandshake::get_legion_arrive_phase_barrier ( void  ) const

Get the Legion phase barrier associated with arriving on the handshake

◆ get_legion_wait_phase_barrier()

PhaseBarrier Legion::LegionHandshake::get_legion_wait_phase_barrier ( void  ) const

Get the Legion phase barrier associated with waiting on the handshake

◆ legion_handoff_to_ext()

void Legion::LegionHandshake::legion_handoff_to_ext ( void  ) const

A non-blocking call to signal to the external application that this participant is ready to pass control to to it.

◆ legion_wait_on_ext()

void Legion::LegionHandshake::legion_wait_on_ext ( void  ) const

A blocking call that will cause this participant to wait for all external participants to hand over control to Legion.


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