diff --git a/src/uvw/process.hpp b/src/uvw/process.hpp index e0a9c83c..03a2d061 100644 --- a/src/uvw/process.hpp +++ b/src/uvw/process.hpp @@ -45,8 +45,14 @@ enum class UVStdIOFlags: std::underlying_type_t { * * It will be emitted by ProcessHandle according with its functionalities. */ -struct ExitEvent: Event {}; +struct ExitEvent: Event { + explicit ExitEvent(int64_t exit_status, int term_signal) noexcept + : exitStatus{exit_status}, termSignal{term_signal} + {} + int64_t exitStatus; /*!< the exit status. */ + int termSignal; /*!< the signal that caused the process to terminate, if any. */ +}; /** * @brief The ProcessHandle handle. @@ -57,7 +63,7 @@ struct ExitEvent: Event {}; class ProcessHandle final: public Handle { static void exitCallback(uv_process_t *handle, int64_t exitStatus, int termSignal) { ProcessHandle &process = *(static_cast(handle->data)); - process.publish(ExitEvent{}); + process.publish(ExitEvent{exitStatus, termSignal}); } public: