mirror of
https://github.com/zebrajr/pytorch.git
synced 2025-12-07 12:21:27 +01:00
Follows #133180 Pull Request resolved: https://github.com/pytorch/pytorch/pull/133295 Approved by: https://github.com/Skylion007
25 lines
583 B
C++
25 lines
583 B
C++
#pragma once
|
|
#include <c10/util/Exception.h>
|
|
|
|
#include <mutex>
|
|
#include <vector>
|
|
|
|
namespace torch::autograd::utils {
|
|
|
|
// Warning handler for multi-threaded contexts. Gather warnings from
|
|
// all threads into a single queue, then process together at the end
|
|
// in the main thread.
|
|
class DelayWarningHandler : public at::WarningHandler {
|
|
public:
|
|
~DelayWarningHandler() override = default;
|
|
void replay_warnings();
|
|
|
|
private:
|
|
void process(const c10::Warning& warning) override;
|
|
|
|
std::vector<c10::Warning> warnings_;
|
|
std::mutex mutex_;
|
|
};
|
|
|
|
} // namespace torch::autograd::utils
|