[rocprofv3] signal handler fix (#332)
* rocprofv3: LD_PRELOAD for signal and sigaction
- wrappers around `signal` and `sigaction` to prevent applications which install signal handlers to replace the rocprofv3 signal handlers
- minor tweaks to buffer sizes (use page_size instead of
KiB)
* [DO NOT COMMIT] extra logging
* Switch git submodule url for perfetto
- use GitHub URL as this is more accessible
* Update ring_buffer<Tp>
- account for alignment padding
* Update buffered_output
- track number of bytes stored
- add nullptr checks
* Update tmp_file_buffer
- track number of bytes
- read_tmp_file does not create tmp file if it does not already exist
* Update tmp_file
- add exists member function for checking whether temporary file already exists
- tweak remove() implementation
* Update config.hpp
- add option to enable/disable signal handlers
- add option for minimum_output_bytes
* Make signal, sigaction functions visible
* rocprofv3 tool updates
- chained signals
- override the signal handler(s) installed by the application
- improve cleanup of temporary files
- support minimum output bytes
* Add commandline support
* fixing test
* minor fix
* minor fix
* fix clang issue
* fix
* Adding docs
* review comments
* review changes
* review
* YUV pulldown additions to rocdecode
* More rocdecode changes
---------
Co-authored-by: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
Co-authored-by: Jonathan R. Madsen <Jonathan.Madsen@amd.com>
Co-authored-by: Benjamin Welton <bewelton@amd.com>
[ROCm/rocprofiler-sdk commit: 87badfbd15]
This commit is contained in:
committed by
GitHub
parent
3fc9374295
commit
2e7d0b3aec
@@ -132,13 +132,28 @@ tmp_file::remove()
|
||||
if(fs::exists(filename))
|
||||
{
|
||||
ROCP_INFO << "removing temporary file: '" << filename << "'...";
|
||||
auto _ret = ::remove(filename.c_str());
|
||||
return (_ret == 0);
|
||||
auto _ec = std::error_code{};
|
||||
auto _ret = fs::remove(filename, _ec);
|
||||
|
||||
if(_ec)
|
||||
ROCP_WARNING << fmt::format(
|
||||
"Error removing temporary file '{}' :: {}", filename, _ec.message());
|
||||
else if(!_ret)
|
||||
ROCP_WARNING << fmt::format("Error removing temporary file '{}' :: Unknown error",
|
||||
filename);
|
||||
|
||||
return _ret;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool
|
||||
tmp_file::exists() const
|
||||
{
|
||||
return fs::exists(filename);
|
||||
}
|
||||
|
||||
tmp_file::operator bool() const
|
||||
{
|
||||
return (stream.is_open() && stream.good()) || (file != nullptr && fd > 0);
|
||||
|
||||
Reference in New Issue
Block a user