Improve static singleton memory safety (#316)
* Update GitHub links
* Update samples/api_buffered_tracing/client.cpp
- check if initialized before forcing initialization
* Add lib/common/static_object.*
- template class for creating a static allocation in the binary which has all the properties of a heap allocated singleton but does not trigger leak sanitizers
* Update include/rocprofiler-sdk/internal_threading.h
- document return values
* Update lib/rocprofiler-sdk/internal_threading.cpp
- return codes from rocprofiler_create_callback_thread and rocprofiler_assign_callback_thread
- use common::static_object for thread-pool object
* Update lib/rocprofiler-sdk/agent.cpp
- use common::static_object to store array of strings and their hashes
* Update lib/rocprofiler-sdk/hsa/code_object.cpp
- use common::static_object to store array of strings and their hashes to ensure strings exist until termination
* Update lib/rocprofiler-sdk/registration.cpp
- use common::static_object to store status and client libraries
- update return values for rocprofiler_set_api_table
* Update lib/rocprofiler-sdk/hsa/hsa.cpp
- check registration::get_fini_status() in hsa_api_impl::functor<Idx>(args...)
* Update lib/rocprofiler-sdk/context/context.cpp
- using common::static_object for correlation id map
[ROCm/rocprofiler-sdk commit: 6b374b8e68]
Αυτή η υποβολή περιλαμβάνεται σε:
υποβλήθηκε από
GitHub
γονέας
946407623f
υποβολή
1e675fceb5
@@ -448,7 +448,12 @@ tool_fini(void* tool_data)
|
||||
void
|
||||
setup()
|
||||
{
|
||||
ROCPROFILER_CALL(rocprofiler_force_configure(&rocprofiler_configure), "force configuration");
|
||||
if(int status = 0;
|
||||
rocprofiler_is_initialized(&status) == ROCPROFILER_STATUS_SUCCESS && status == 0)
|
||||
{
|
||||
ROCPROFILER_CALL(rocprofiler_force_configure(&rocprofiler_configure),
|
||||
"force configuration");
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
Αναφορά σε νέο ζήτημα
Block a user