mirror of
https://github.com/NixOS/nix
synced 2025-07-05 16:31:47 +02:00
JSONLogger: Acquire a lock to prevent log messages from clobbering each other
This commit is contained in:
parent
b8eaf1b322
commit
d0227f8d02
1 changed files with 15 additions and 1 deletions
|
@ -6,6 +6,7 @@
|
||||||
#include "config-global.hh"
|
#include "config-global.hh"
|
||||||
#include "source-path.hh"
|
#include "source-path.hh"
|
||||||
#include "position.hh"
|
#include "position.hh"
|
||||||
|
#include "sync.hh"
|
||||||
|
|
||||||
#include <atomic>
|
#include <atomic>
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
@ -201,9 +202,22 @@ struct JSONLogger : Logger {
|
||||||
unreachable();
|
unreachable();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct State
|
||||||
|
{
|
||||||
|
};
|
||||||
|
|
||||||
|
Sync<State> _state;
|
||||||
|
|
||||||
void write(const nlohmann::json & json)
|
void write(const nlohmann::json & json)
|
||||||
{
|
{
|
||||||
writeLine(fd, "@nix " + json.dump(-1, ' ', false, nlohmann::json::error_handler_t::replace));
|
auto line =
|
||||||
|
"@nix " +
|
||||||
|
json.dump(-1, ' ', false, nlohmann::json::error_handler_t::replace);
|
||||||
|
|
||||||
|
/* Acquire a lock to prevent log messages from clobbering each
|
||||||
|
other. */
|
||||||
|
auto state(_state.lock());
|
||||||
|
writeLine(fd, line);
|
||||||
}
|
}
|
||||||
|
|
||||||
void log(Verbosity lvl, std::string_view s) override
|
void log(Verbosity lvl, std::string_view s) override
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue