1
0
Fork 0
mirror of https://github.com/polybar/polybar.git synced 2024-10-27 05:23:39 -04:00
polybar/include/utils/process.hpp

33 lines
860 B
C++
Raw Normal View History

2016-06-14 23:32:35 -04:00
#pragma once
2020-12-11 19:07:13 -05:00
#include <sys/types.h>
2016-06-14 23:32:35 -04:00
#include "common.hpp"
2016-11-19 00:22:44 -05:00
POLYBAR_NS
2016-06-14 23:32:35 -04:00
namespace process_util {
2016-11-02 15:22:45 -04:00
bool in_parent_process(pid_t pid);
bool in_forked_process(pid_t pid);
2016-06-14 23:32:35 -04:00
void redirect_stdio_to_dev_null();
pid_t spawn_async(std::function<void()> const& lambda);
void fork_detached(std::function<void()> const& lambda);
2020-05-06 16:28:05 -04:00
2016-12-03 09:46:48 -05:00
void exec(char* cmd, char** args);
void exec_sh(const char* cmd, const vector<pair<string, string>>& env = {});
2016-06-14 23:32:35 -04:00
int wait(pid_t pid);
pid_t wait_for_completion(pid_t process_id, int* status_addr = nullptr, int waitflags = 0);
2016-11-02 15:22:45 -04:00
pid_t wait_for_completion(int* status_addr, int waitflags = 0);
pid_t wait_for_completion_nohang(pid_t process_id, int* status);
pid_t wait_for_completion_nohang(int* status);
pid_t wait_for_completion_nohang();
2016-06-14 23:32:35 -04:00
2016-11-02 15:22:45 -04:00
bool notify_childprocess();
} // namespace process_util
2016-06-14 23:32:35 -04:00
2016-11-19 00:22:44 -05:00
POLYBAR_NS_END