Stop all client contexts prior to finalization (#721)
* Stop all client contexts prior to finalization
* Update lib/common/container/static_vector.hpp
- improve emplace_back for non-{move,copy}-assignable object
* Update samples/intercept_table/client.cpp
- improve robustness against static object destruction
* Update lib/rocprofiler-sdk/context/context.cpp
- change storage of registered context array
- stable_vector of optional contexts
- common::static_object wrapper around stable_vector
* Update samples/intercept_table/client.cpp
- use variable template for underlying function pointer
This commit is contained in:
committed by
GitHub
parent
e3c7eed7c0
commit
939e23e9d1
@@ -360,8 +360,10 @@ TEST(rocprofiler_lib, roctx_callback_tracing)
|
||||
|
||||
static fini_func_t tool_fini = [](void* client_data) -> void {
|
||||
auto* cb_data = static_cast<callback_data*>(client_data);
|
||||
ROCPROFILER_CALL(rocprofiler_stop_context(cb_data->client_ctx),
|
||||
"rocprofiler context stop failed");
|
||||
int status = 0;
|
||||
ROCPROFILER_CALL(rocprofiler_context_is_active(cb_data->client_ctx, &status),
|
||||
"rocprofiler_context_is_active failed");
|
||||
EXPECT_EQ(status, 0);
|
||||
|
||||
static_cast<callback_data*>(client_data)->client_workflow_count++;
|
||||
};
|
||||
@@ -489,8 +491,10 @@ TEST(rocprofiler_lib, roctx_buffered_tracing)
|
||||
auto* cb_data = static_cast<callback_data*>(client_data);
|
||||
ROCPROFILER_CALL(rocprofiler_flush_buffer(cb_data->client_buffer),
|
||||
"rocprofiler context stop failed");
|
||||
ROCPROFILER_CALL(rocprofiler_stop_context(cb_data->client_ctx),
|
||||
"rocprofiler context stop failed");
|
||||
int status = 0;
|
||||
ROCPROFILER_CALL(rocprofiler_context_is_active(cb_data->client_ctx, &status),
|
||||
"rocprofiler_context_is_active failed");
|
||||
EXPECT_EQ(status, 0);
|
||||
|
||||
static_cast<callback_data*>(client_data)->client_workflow_count++;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user