使用增强条件变量

时间:2012-09-10 05:33:14

标签: c++ boost

我正在设计一个异步记录器类,如下所示。但是,不确定我是否以正确的方式使用boost条件变量。任何人都可以评论这个吗?这里的processLogEntry方法是一个线程函数,我在这里使用boost。

void LogWriter::stopThread()
{
    mStop = true;
    mCond.notify_one();
    mThread->join();
}   

void LogWriter::processLogEntry()
{
    while(!mStop)
    {
        boost::mutex::scoped_lock lock(mMutex);
        mCond.wait(lock);
        while(!q.empty())
        {
            // process begins
        }
    }
}

void LogWriter::addLogEntry()
{
    boost::mutex::scoped_lock lock(mMutex);
    // add it in the queue
    mCond.notify_one();
}

0 个答案:

没有答案
相关问题