Cilk assertion when throwing an exception in cilk worker thread

Cilk assertion when throwing an exception in cilk worker thread

Ritratto di Daniel Faken

Hi,

If I do a simple throw std::runtime_error("test exception") in a function at the bottom of bunch of recursive functions using cilk_for, I get a crash with this error:

.\\sched.c:1189: cilk assertion failed: sf->call_parent == 0

If I attach to the process with Visual Studio before the exception, it will catch it (as "first chance"), but the exception is apparently having trouble being propogated as described in the docs, which say:
If an
exception is thrown and not caught in a spawned child, then that
exception is rethrown in the parent at the next sync point.

In my case, the exception *should* be caught at a much higher stack frame. Am I doing something wrong?
I see the release note about MS SEH, but this is just standard C++, compiled with /EHsc.

thanks,
Daniel

4 post / 0 new
Ultimo contenuto
Per informazioni complete sulle ottimizzazioni del compilatore, consultare l'Avviso sull'ottimizzazione
Ritratto di Pablo Halpern (Intel)

This is a known bug with cilk_for. We're sorry that you ran into it. We're working on a fix.
-Pablo

Ritratto di Daniel Faken

ok, thank you.

Ritratto di Brandon Hewitt (Intel)

Hi Daniel,

This should be fixed. Our defect database indicates this fix is in update 3, but update 2 seems to fix this as well.

Brandon Hewitt Technical Consulting Engineer Tools Knowledge Base: "http://software.intel.com/en-us/articles/tools" Software Product Support info: "http://www.intel.com/software/support"

Accedere per lasciare un commento.