13 #ifndef __PROCESS_WINDOWS_JOBOBJECT_HPP__
14 #define __PROCESS_WINDOWS_JOBOBJECT_HPP__
30 #include <glog/logging.h>
44 const std::wstring&
name,
47 jobs.emplace(pid, JobData{
name, handle});
56 CHECK(!exit_code.isPending());
57 CHECK(!exit_code.isDiscarded());
60 CHECK(!killJobResult.isError())
61 <<
"Failed to kill job object: " << killJobResult.error();
75 std::map<pid_t, JobData> jobs;
83 inline Subprocess::ParentHook Subprocess::ParentHook::CREATE_JOB() {
129 #endif // __PROCESS_WINDOWS_JOBOBJECT_HPP__
Definition: nothing.hpp:16
Definition: errorbase.hpp:35
Definition: windows.hpp:78
process::Future< bool > cleanup(const std::string &hierarchy)
void cleanup(Future< Option< int >> exit_code, const pid_t pid)
Definition: jobobject.hpp:54
pid_t pid() const
Definition: subprocess.hpp:241
Definition: process.hpp:72
Future< Option< int > > reap(pid_t pid)
Try< std::wstring > name_job(pid_t pid)
Definition: os.hpp:549
Try< Nothing > assign_job(SharedHandle job_handle, pid_t pid)
Definition: os.hpp:864
void dispatch(const PID< T > &pid, void(T::*method)())
Definition: dispatch.hpp:174
DWORD pid_t
Definition: windows.hpp:187
virtual ~JobObjectManager()
Definition: jobobject.hpp:40
Try< SharedHandle > create_job(const std::wstring &name)
Definition: os.hpp:605
const Future< T > & onAny(AnyCallback &&callback) const
Definition: future.hpp:1458
Try< Nothing > kill_job(SharedHandle job_handle)
Definition: os.hpp:895
Definition: jobobject.hpp:36
static Try error(const E &e)
Definition: try.hpp:42
Result< Process > process(pid_t pid)
Definition: freebsd.hpp:30
bool isError() const
Definition: try.hpp:71
JobObjectManager()
Definition: jobobject.hpp:39
PID< JobObjectManager > job_object_manager
Definition: process.hpp:493
Deferred< void()> defer(const PID< T > &pid, void(T::*method)())
Definition: defer.hpp:35
void manage(const pid_t pid, const std::wstring &name, const SharedHandle &handle)
Definition: jobobject.hpp:42
const T & get() const
Definition: try.hpp:73
constexpr const char * name
Definition: shell.hpp:41
Definition: future.hpp:57