NAME

arm_stop_transaction - stop transaction

SYNOPSIS

#include <arm4.h>

arm_error_t
arm_stop_transaction(

    const arm_tran_start_handle_t 
tran_handle

    const arm_tran_status_t 
tran_status

    const arm_int32_t 
flags,

    const arm_buffer4_t *
buffer4);

DESCRIPTION

arm_stop_transaction() signals the end of a transaction.
  Call arm_stop_transaction() just after a transaction completes. arm_start_transaction() signals the ARM library to start timing the transaction response time. arm_stop_transaction() signals the ARM library to stop timing the transaction response time. It can be called from any thread in the process that executed the arm_start_transaction().
  Implicit arm_unbind_thread() and arm_unblock_transaction() calls are made for any pending arm_bind_thread() and arm_block_transaction() calls, respectively, that have not been explicitly unbound or unblocked with arm_unbind_thread() and arm_unblock_transaction().

buffer4 is a pointer to the user data buffer, if any. If the pointer is null (ARM_BUF4_NONE), there is no buffer. The sub-buffers that may be used are arm_subbuffer_diag_detail_t and arm_subbuffer_metric_values_t.
  flags contains 32-bit flags. No values are currently defined. The field should be zero (ARM_FLAG_NONE).

tran_handle is a handle returned in an out parameter from an arm_start_transaction() call in the same process.

tran_status indicates the status of the transaction. The following values are allowed:
 

0
(ARM_STATUS_GOOD) = transaction completed successfully
1
(ARM_STATUS_ABORTED) = transaction was aborted before it completed. For example, the user might have pressed "Stop" or "Back" on a browser while a transaction was in process, causing the transaction, as measured at the browser, to be aborted.
2
(ARM_STATUS_FAILED) = transaction completed in error
3
(ARM_STATUS_UNKNOWN) = transaction completed but the status was unknown. This would most likely occur if middleware or some other form of proxy instrumentation measured the transaction. This instrumentation may know enough to know when the transaction starts and stops, but does not understand the application-specific semantics sufficiently well to know whether the transaction was successful.

RETURN VALUE

On success, the function returns ARM_SUCCESS. A non-zero value indicates an error.

ERRORS

If the return code is negative, an error occurred. If the return code is not negative, an error may or may not have occurred - the determination of what is an error and whether an error code is returned is at the discretion of the ARM implementation. The application can test the return code if it wants to provide its own error logging.

The following errors are recognized by this implementation, but may not be portable to other implementations:

ARM_FAILURE_INTERNAL_ERROR
An internal error has occurred that prevented the operation from completing. Check your system log for more details.

CONFORMING TO

ARM Issue 4.0 C Language Bindings, Version 2

EXAMPLE

None.

SEE ALSO

arm_bind_thread(3), arm_block_transaction(3), arm_start_transaction(3), arm_unbind_thread(3), arm_unblock_transaction(3)