Improved error reporting

This commit is contained in:
emeric
2020-12-17 13:50:53 +01:00
parent 50d9de9c93
commit 0bbacf3914
+13 -5
View File
@@ -80,7 +80,12 @@ ChildProcess::ChildProcess(boost::asio::io_context& ioContext, const std::filesy
else // PARENT else // PARENT
{ {
close(pipe[1]); close(pipe[1]);
_childStdout.assign(pipe[0]); {
boost::system::error_code assignError;
_childStdout.assign(pipe[0], assignError);
if (assignError)
LMS_LOG(CHILDPROCESS, ERROR) << "Assign failed: " << assignError.message();
}
_childPID = res; _childPID = res;
} }
} }
@@ -89,7 +94,12 @@ ChildProcess::~ChildProcess()
{ {
if (!_waited) if (!_waited)
{ {
close(_childStdout.native_handle()); {
boost::system::error_code closeError;
_childStdout.close(closeError);
if (closeError)
LMS_LOG(CHILDPROCESS, ERROR) << "Closed failed: " << closeError.message();
}
kill(); kill();
wait(true); wait(true);
} }
@@ -133,12 +143,10 @@ ChildProcess::wait(bool block)
void void
ChildProcess::asyncRead(std::byte* data, std::size_t bufferSize, ReadCallback callback) ChildProcess::asyncRead(std::byte* data, std::size_t bufferSize, ReadCallback callback)
{ {
LMS_LOG(CHILDPROCESS, DEBUG) << "ASYNC READ";
boost::asio::async_read(_childStdout, boost::asio::buffer(data, bufferSize), boost::asio::async_read(_childStdout, boost::asio::buffer(data, bufferSize),
[this, callback {std::move(callback)}](const boost::system::error_code& error, std::size_t bytesTransferred) [this, callback {std::move(callback)}](const boost::system::error_code& error, std::size_t bytesTransferred)
{ {
LMS_LOG(CHILDPROCESS, DEBUG) << "ASYNC READ CB - error = '" << error.message() << "', bytesTransferred = " << bytesTransferred; LMS_LOG(CHILDPROCESS, DEBUG) << "Async read cb - ec = '" << error.message() << "', bytesTransferred = " << bytesTransferred;
if (error) if (error)
{ {