arm_discard_transaction

Langue: en

Version: August 2008 (fedora - 05/07/09)

Section: 3 (Bibliothèques de fonctions)

NAME

arm_discard_transaction - discard transaction

SYNOPSIS

#include <arm4.h>

arm_error_t
arm_discard_transaction(

    const arm_tran_start_handle_t 
tran_handle,

    const arm_int32_t 
flags,

    const arm_buffer4_t *
buffer4);

DESCRIPTION

arm_discard_transaction() signals that the referenced arm_start_transaction() should be ignored and treated as if it never happened. Measurements associated with a transaction that is processing should be discarded. Either arm_discard_transaction() or arm_stop_transaction() is used - never both.

An example of when a transaction would be discarded could happen is if proxy instrumentation believes a transaction is starting, but then learns that it did not. It can be called from any thread in the process that executed the arm_start_transaction(). In general, the use of arm_discard_transaction() is discouraged, but experience has shown a few use cases that require the functionality.

arm_discard_transaction() clears any thread bindings [arm_bind_thread()] and blocking conditions [arm_block_transaction()].

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

No sub-buffer types are currently valid with this function call, so the buffer4 pointer should be null (ARM_BUF4_NONE).

No values are currently defined for flags. The field should be zero (ARM_FLAG_NONE).

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_stop_transaction(3)