【发布时间】:2020-03-29 02:38:16
【问题描述】:
我有一个小问题,希望能找到可以提供帮助的人。 我正在尝试使用 ucontext 在 c 中开发一个线程库,并且我已经为此开发了基本功能。所以现在我的问题是我想考虑当用户用 return 而不是我的 exit 函数完成他的函数时的情况。
当用户在他的函数中使用retutn时,是否可以知道线程上下文是否完成并获得返回值??
【问题讨论】:
标签: c pthreads ucontext pthread-exit
我有一个小问题,希望能找到可以提供帮助的人。 我正在尝试使用 ucontext 在 c 中开发一个线程库,并且我已经为此开发了基本功能。所以现在我的问题是我想考虑当用户用 return 而不是我的 exit 函数完成他的函数时的情况。
当用户在他的函数中使用retutn时,是否可以知道线程上下文是否完成并获得返回值??
【问题讨论】:
标签: c pthreads ucontext pthread-exit
当用户在他的函数中使用retutn时,是否可以知道线程上下文是否完成并获得返回值??
是的:您提供自己的 函数,并用它初始化上下文。您将指针传递给用户函数,并将参数(如果有)传递给您的函数。该函数看起来像:
void *thread_top(void *(*user_fn)(void*), void *arg)
{
void *ret = (*user_fn)(arg);
// Do whatever is desirable for "ret" and terminate the context here.
}
【讨论】: