<h3>Specific improvements</h3>
<ol>
+<li> Fixed: If an exception was generated on a task created by
+Threads::new_task, the program would terminate with a segmentation
+fault, leaving little trace of what had happened. This is now handled
+more gracefully.
+<br>
+(Wolfgang Bangerth, 2013/06/02)
+</li>
-<li> Changed: subdomainids can now only be queried/set on active cells.
+<li> Changed: subdomain ids can now only be queried/set on active cells.
Consequently, is_artificial(), is_ghost(), and is_locally_owned() is
now restricted to active cells.
<br>
// call the function object
// and put the return value
// into the proper place
- call (task_descriptor.function, task_descriptor.ret_val);
+ try
+ {
+ call (task_descriptor.function, task_descriptor.ret_val);
+ }
+ catch (const std::exception &exc)
+ {
+ internal::handle_std_exception (exc);
+ }
+ catch (...)
+ {
+ internal::handle_unknown_exception ();
+ }
return 0;
}
// the TBB book on pages
// 230/231 ("Start a large task
// in parallel with the main
- // program)
+ // program")
task = new (tbb::task::allocate_root()) tbb::empty_task;
task->set_ref_count (2);
{
call (function, ret_val);
}
+
/**
* Wait for the task to
* return. Since we are in
In the beginning the Universe was created. This has made a lot of
people very angry and has been widely regarded as a bad move.
Douglas Adams