Boost logo

Boost :

Subject: [boost] boost::tasks::static_pool< boost::tasks::unbounded_fifo > crashes when poolsize > 1
From: Joseph Winston (josephwinston_at_[hidden])
Date: 2010-12-13 12:17:29

I've attached a program that reproduces the problem for me.

The system this is running on is the following (Yes, I know it is old
but I have very little control over the OS and compiler):

Distribution: RHEL 4
$ uname -a
Linux 2.6.9-67.ELsmp #1 SMP Wed Nov 7 13:56:44
EST 2007 x86_64 x86_64 x86_64 GNU/Linux

Compiler: g++ 3.4.6
boost: 1.39.0
boost.context: 0.2.0
boost.fiber: 0.5.1
boost.task: svn revision 67209

The code of interest is:

void f1()
    std::cout << "\t"
              << "f1" << std::endl;

void f2()
    std::cout << "\t"
              << "f2" << std::endl;

    typedef boost::tasks::static_pool< boost::tasks::unbounded_fifo >
    pool_type pool(boost::tasks::poolsize(4),
                   boost::tasks::stacksize(1024 * 128));

    std::cout << "Starting" << std::endl;


    std::cout << "Done" << std::endl;

Whenever poolsize is greater than 1, I sometimes receive the following

(gdb) where
#0 0x0000002a95d7d8db in boost::fibers::detail::trampoline
(vp=0xffffffff96400ac0) at libs/fiber/src/detail/info_base.cpp:25
#1 0x0000003c0203e960 in __correctly_grouped_prefixwc () from
#2 0x0000000000000000 in ?? ()
(gdb) print *self
Cannot access memory at address 0xffffffff96400ac0

Am I missing a fundamental concept with the way that
boost::tasks::static_pool works or is there something else going on?


Boost list run by bdawes at, gregod at, cpdaniel at, john at