MUTEX_UNLOCK(vm->shreduler->mutex);
}
-static void join(const M_Object o) {
+static inline void join(const M_Object o) {
if(FORK_THREAD(o)) {
THREAD_JOIN(FORK_THREAD(o));
FORK_THREAD(o) = 0;
static DTOR(fork_dtor) {
*(m_int*)(o->data + o_fork_done) = 1;
stop(o);
+ join(o);
VM *parent = ME(o)->info->vm->parent;
MUTEX_LOCK(parent->shreduler->mutex);
if(parent->gwion->data->child.ptr) {
if(!shred->tick->child.ptr)
vector_init(&shred->tick->child);
vector_add(&shred->tick->child, (vtype)sh);
+ vector_add(&shred->gc, (vtype)sh->info->me);
return sh;
}