arm_subbuffer_block_cause Struct Reference
[ARM 4.1 Sub-buffers]

used to specify a block cause for a blocking transaction. More...

#include <arm41.h>

Data Fields

arm_subbuffer_t header
arm_block_cause_t cause
arm_int32_t extended_cause
 This is an optional value that can be used to further qualify the type of blocking cause within the two possible blocking types: synchronous and asynchronous.
const arm_char_tdescription
 This is an optional null-terminated character string with a maximum length of 128 characters, including the termination character, which describes the block cause. A null value indicates that no description is provided.

Detailed Description

used to specify a block cause for a blocking transaction.

Applications may indicate that they are blocked waiting on an external event using the arm_block_transaction() function. When the application becomes unblocked it indicates the same using arm_unblock_transaction(). Calling arm_stop_transaction() implicitly executes an arm_unblock_transaction() for every blocking condition whose end has not been explicitly indicated using arm_unblock_transaction().

Calling arm_block_transaction() with no further information does not indicate the cause of the blocking condition. The Block Cause sub-buffer provides a means to indicate the cause of the blocking condition. Its use is optional. It is valid on the following calls:

In the case of application servers that loop on queued message requests, it is important to distinguish between the application being blocked and a message being blocked (or simply not available yet). arm_block_transaction() and arm_unblock_transaction() are used only within the scope of paired arm_start_transaction() and arm_stop_transaction() calls that indicate the time that work is being processed. If the application server is idle waiting for work to process it would not report this time using arm_block_transaction() and arm_unblock_transaction().


Field Documentation

A value that indicates the cause of the blocking condition. All non-negative values are defined by or reserved by this specification:

This is an optional value that can be used to further qualify the type of blocking cause within the two possible blocking types: synchronous and asynchronous.

  • All non-negative values: Reserved by the standard. It is anticipated that ranges will be assigned to organizations that instrument their software.
  • Negative values:The extended blocking cause is not defined by the standard. There are no restrictions on who uses these values or what they mean.

The documentation for this struct was generated from the following file:
 All Data Structures Files Functions Variables Typedefs Defines