Thanks, now I understand. The main question was why threadcreate asks for function pointer and can't just leave me in my function like rfork. So it is because we should move local variables out of scope as they are no more valid cause we have a new completely clear stack.
But when it is better to use rfork with shared memory and when libthread?
