From f9c0dcac313a9821008eaec20b067874da27d626 Mon Sep 17 00:00:00 2001 From: Wang Renxin Date: Wed, 15 Nov 2017 20:02:18 +0800 Subject: [PATCH] *fixed a mistake in previous commit. --- core/my_basic.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/core/my_basic.c b/core/my_basic.c index fbe9a11..e79c5cf 100755 --- a/core/my_basic.c +++ b/core/my_basic.c @@ -12146,10 +12146,16 @@ int mb_fork(struct mb_interpreter_t** s, struct mb_interpreter_t* r, bool_t clfk int mb_join(struct mb_interpreter_t** s) { #ifdef MB_ENABLE_FORK int result = MB_FUNC_OK; + mb_interpreter_t* src = 0; if(!s || !(*s) || !(*s)->forked_from) return MB_FUNC_ERR; + src = *s; + while(mb_get_forked_from(src, &src) == MB_FUNC_OK) { + /* Do nothing */ + } + (*s)->valid = false; _ls_destroy((*s)->sub_stack); @@ -12172,8 +12178,8 @@ int mb_join(struct mb_interpreter_t** s) { _ls_foreach((*s)->lazy_destroy_objects, _destroy_object); _ls_destroy((*s)->lazy_destroy_objects); - if((*s)->all_forked) - _ls_try_remove((*s)->all_forked, *s, _ls_cmp_data, 0); + if(src->all_forked) + _ls_try_remove(src->all_forked, *s, _ls_cmp_data, 0); safe_free(*s);