Throwing an exception uses libgcc's stack unwinder. On mips64el
the unwinder will overflow the default stack size of 8K. In turn
the return ucontext gets overwritten, resulting in a jump into
garbage.
This limit applies solely to the stack, the heap is not limited in any way. If threads need to allocate a lot of data,
the use of new/delete is suggested.
*/
- MTasker(size_t stacksize=8192) : d_tid(0), d_maxtid(0), d_stacksize(stacksize), d_waitstatus(Error)
+ MTasker(size_t stacksize=16*8192) : d_tid(0), d_maxtid(0), d_stacksize(stacksize), d_waitstatus(Error)
{
initMainStackBounds();
}