Hello all,

 

I am porting my program from Linux to Windows with boost coroutine2. I found 32bit program throwing boost::context::detail::forced_unwind every time when coroutine destructed. But 64bit program works like charm.

 

  terminate called after throwing an instance of 'boost::context::detail::forced_unwind'

 

The program works well on Linux(Ubuntu). Then I tried the official example:

 

typedef boost::coroutines2::coroutine<int>   coro_t;

 

coro_t::pull_type source(

    [&](coro_t::push_type& sink){

        int first=1,second=1;

        sink(first);

        sink(second);

        for(int i=0;i<8;++i){

            int third=first+second;

            first=second;

            second=third;

            sink(third);

        }

    });

 

for(auto i:source)

std::cout << i <<  " ";

 

 

Same thing happened.

 

Platform: windows 7 64 bit

Boost: 1.67/1.69

Compiler: TDM-GCC 5.1 64bit.

 

Best,