arm_stop_transaction() — Mark the end of an ARM transaction

Standards

Standards / Extensions C or C++ Dependencies
  both  

Format

#include <sys/_Elmarm4.h>

arm_error_t arm_stop_transaction(
/* [in]     */  arm_start_handle_t     start_handle,
/* [in]     */  arm_int32_t     transaction_status,
/* [in]     */  arm_int32_t      flags,
/* [in]     */  arm_buffer4_t   *buffer4,
);

General description

Use arm_stop_transaction() to mark the end of execution of a transaction.

If any threads are bound to the transaction, arm_stop_transaction() unbinds them. If the transaction is in a blocked state due to outstanding arm_blocked() calls, then arm_stop_transaction() considers the transaction to be unblocked at the time it is stopped. This cleanup processing exists for recovery purposes. Applications are expected to use arm_unbind_thread() and arm_unblocked() as part of normal processing.
start_handle
The handle returned by arm_start_transaction() for the transaction.
transaction_status
The completion code of the transaction.
ARM_STATUS_GOOD
Transaction successful.
ARM_STATUS_ABORT
Transaction aborted This value indicates there was a fundamental failure in the system; for example, a communications timeout or a database operation error.
ARM_STATUS_FAILED
Transaction failed. This value indicates the system worked properly but the transaction was not successful; for example, when making an airline reservation, no seats are available on the requested flight.
ARM_STATUS_UNKNOWN
Transaction status is unknown.
.
flags
Reserved for future use. The argument must be set to 0.
buffer4
A pointer to a buffer that identifies one or more sub-buffers containing additional data. A null pointer can be passed if no additional data is required. The proposed ARM4 standard defines a metric values sub-buffer for this function but eWLM does not process metrics. If a buffer is passed eWLM ignores it.

Returned value

On success, arm_end_application returns ARM_RC_SUCCESS. On failure, the errno and return code are set to indicate the error. See Return code for the list of all possible return codes.
Error Code
Description
EFAULT
A parameter of this service contained an address that was not accessible to the caller.
EINVAL
A parameter of this service contained a value that was not valid.
EMVSARMERROR
An ARM error occurred. Refer to the return code for the specific error.
EPERM
The caller does not have the appropriate privileges. The return code is set to ARM_RC_AUTH_ERROR.
EMVSSAF2ERR
An error occurred in the security product.

Related information