如何实现可选的延迟处理

我正在使用GCC 4.4.7(尚未拥有所有C ++ 11的东西)和CentOS 6.2上的Boost 1.55。 这不是一项家庭作业或班级作业。

第三方库会回调到我的应用程序中。 该函数在单个线程上调用,我的工作是处理消息并尽可能快地返回

void mycallback(Message& m)
{
    /// process m here and return quickly
    doProcessing(m);
}

现在我们需要根据消息中的属性来延迟处理某些消息。

我们仍然需要尽快将控制权交还第三方图书馆,但在内部,我希望在处理该信息前持续1秒钟。

void mycallback(Message& m)
{
    if(m.type == 1) {    
       doProcessingInOneSecond(m);
    }
    else {
       doProcessing(m);
    }
}

我只想得到一些想法,以便从社区中接受这种方法。 约束是这样的

1. the callback needs to return as quickly as possible in all cases
2. the callback may be invoked many times per second (always on the same thread)
3. messages of the same type must always be processed sequentially
链接地址: http://www.djcxy.com/p/60531.html

上一篇: How to implement optional delayed processing

下一篇: Shared library SIGSEGV on dlopen / static init when calling @plt function