
Hi All. I am trying to use Futures, but not getting the expected result. The
code below works some times, and other times it throws exception
"terminate called after throwing an instance of
'boost::exception_detail::clone_impl
' what(): Promise already satisfied"
Any help will be appreciated.
Thanks Kazz.
//-------------------------------------------//
boost::promise<int> pt; // holds final calculated result
void worker1()
{
// do any processing using algorithm A
srand ( time ( NULL) );
int delay = rand() % 5 + 1;
boost::this_thread::sleep( boost::posix_time::seconds(delay));
// result calculate
pt.set_value(1);
}
void worker2()
{
// do any processing using algorithm B
srand ( time ( NULL) );
int delay = rand() % 5 + 1;
boost::this_thread::sleep( boost::posix_time::seconds(delay));
// result calculated
pt.set_value(2);
}
int main() {
boost::shared_future<int> ans(pt.get_future());
boost::thread th1(worker1);
boost::thread th2(worker2);
ans.wait();
std::cout<