Cilk assertion when throwing an exception in cilk worker thread

Cilk assertion when throwing an exception in cilk worker thread


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.


4 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

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

ok, thank you.

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

For 1:1 technical support:

Software Product Support info:

Leave a Comment

Please sign in to add a comment. Not a member? Join today