代码之家  ›  专栏  ›  技术社区  ›  zneak

是否有什么可以替换<ucontext.h>函数?

  •  22
  • zneak  · 技术社区  · 14 年前

    用户线程在 <ucontext.h> 不推荐使用,因为它们使用了不推荐使用的C功能(它们 use a function declaration with empty parentheses for an argument )

    有没有标准的替代品?我觉得成熟的线程不擅长实现协作线程。

    4 回复  |  直到 12 年前
        1
  •  17
  •   R.. GitHub STOP HELPING ICE    14 年前

    ucontext.h void *

    int argc, ... makecontext makecontext(ucp, func, 1, (void *)arg);

    https://computing.llnl.gov/tutorials/pthreads/#ConditionVariables

    self->flag = 0;
    other_thread->flag = 1;
    pthread_mutex_lock(other_thread->mutex);
    pthread_cond_signal(other_thread->cond);
    pthread_mutex_unlock(other_thread->mutex);
    pthread_mutex_lock(self->mutex);
    while (!self->flag)
        pthread_cond_wait(self->cond, self->mutex);
    pthread_mutex_unlock(self->mutex);
    

    other_thread task_switch pthread_cond_wait pthread_cond_signal

        2
  •  10
  •   Pavan Manjunath David Thornley    12 年前

    Boost.Context recently accepted ucontext

        3
  •  5
  •   nos    14 年前
        4
  •  1
  •   jim mcnamara    14 年前

    推荐文章