add assertion to flush_stack_call_func
functions called via flush_stack_call_func are assumed to return with the global lock held again, and with current_thread reset. this assertion verifies part of this
This commit is contained in:
parent
32ca162e99
commit
0a6f2ff0c8
1 changed files with 4 additions and 1 deletions
|
@ -4649,6 +4649,7 @@ void
|
|||
flush_stack_call_func (void (*func) (void *arg), void *arg)
|
||||
{
|
||||
void *end;
|
||||
struct thread_state *self = current_thread;
|
||||
|
||||
#ifdef HAVE___BUILTIN_UNWIND_INIT
|
||||
/* Force callee-saved registers and register windows onto the stack.
|
||||
|
@ -4702,8 +4703,10 @@ flush_stack_call_func (void (*func) (void *arg), void *arg)
|
|||
#endif /* not GC_SAVE_REGISTERS_ON_STACK */
|
||||
#endif /* not HAVE___BUILTIN_UNWIND_INIT */
|
||||
|
||||
current_thread->stack_top = end;
|
||||
self->stack_top = end;
|
||||
(*func) (arg);
|
||||
|
||||
eassert (current_thread == self);
|
||||
}
|
||||
|
||||
#endif /* GC_MARK_STACK != 0 */
|
||||
|
|
Loading…
Add table
Reference in a new issue