Выход из потока с возвратом - PullRequest
0 голосов
/ 29 марта 2020

У меня небольшая проблема, и я надеюсь найти кого-то, кто может помочь. Я пытаюсь разработать библиотеку потоков в c, используя ucontext, и я разработал основные функции c для этого. так что теперь моя проблема в том, что я хочу рассмотреть случай, когда пользователь завершает свою функцию с возвратом вместо моей функции выхода.

Можно ли узнать, закончен ли контекст потока, и получить возвращаемое значение, когда пользователь использует ретутн в своей функции ??

1 Ответ

0 голосов
/ 29 марта 2020

Можно ли выполнить kown, если контекст потока завершен, и получить возвращаемое значение, когда пользователь использует 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.
}
...