enhanded guardProcess() with setpgid() and kill()

This commit is contained in:
2018-09-11 15:11:48 +00:00
parent 1218015572
commit 0dd7cc2d65
3 changed files with 24 additions and 31 deletions

View File

@ -88,7 +88,7 @@ public:
static int setSignalHandler (int sig, SignalHandler sighr);
static int unsetSignalHandler (int sig, bool ignore = false);
int guardProcess (const qse_mchar_t* proc_name, const SignalSet& signals);
int guardProcess (const SignalSet& signals, const qse_mchar_t* proc_name = QSE_NULL);
private:
App* _prev_app;
@ -116,26 +116,6 @@ protected:
};
// functor as a template parameter
template <typename F>
class QSE_EXPORT AppF: public App
{
public:
AppF (Mmgr* mmgr = QSE_NULL) QSE_CPP_NOEXCEPT: App(mmgr) {}
AppF (const F& f, Mmgr* mmgr = QSE_NULL) QSE_CPP_NOEXCEPT: App(mmgr), __lfunc(f) {}
#if defined(QSE_CPP_ENABLE_CPP11_MOVE)
AppF (F&& f, Mmgr* mmgr = QSE_NULL) QSE_CPP_NOEXCEPT: App(mmgr), __lfunc(QSE_CPP_RVREF(f)) {}
#endif
protected:
F __lfunc;
void on_signal (int sig)
{
this->__lfunc(this, sig);
}
};
/////////////////////////////////
QSE_END_NAMESPACE(QSE)
/////////////////////////////////