mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-04-28 11:47:48 +02:00
daemonization.
This commit is contained in:
parent
3a864cb6c5
commit
334c92bb49
6 changed files with 74 additions and 46 deletions
12
Queue.h
12
Queue.h
|
@ -65,7 +65,7 @@ namespace util
|
|||
return m_Queue.empty ();
|
||||
}
|
||||
|
||||
void WakeUp () { m_NonEmpty.notify_one (); };
|
||||
void WakeUp () { m_NonEmpty.notify_all (); };
|
||||
|
||||
Element * Get ()
|
||||
{
|
||||
|
@ -108,11 +108,15 @@ namespace util
|
|||
typedef std::function<void()> OnEmpty;
|
||||
|
||||
MsgQueue (): m_IsRunning (true), m_Thread (std::bind (&MsgQueue<Msg>::Run, this)) {};
|
||||
~MsgQueue () { Stop (); };
|
||||
void Stop()
|
||||
{
|
||||
m_IsRunning = false;
|
||||
Queue<Msg>::WakeUp ();
|
||||
m_Thread.join();
|
||||
if (m_IsRunning)
|
||||
{
|
||||
m_IsRunning = false;
|
||||
Queue<Msg>::WakeUp ();
|
||||
m_Thread.join();
|
||||
}
|
||||
}
|
||||
|
||||
void SetOnEmpty (OnEmpty const & e) { m_OnEmpty = e; };
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue