Swapcontext - linkedlist被破坏

时间:2014-09-01 16:54:33

标签: multithreading

我正在尝试将上下文从一个线程交换到另一个线程。我正在维护一个链表来维护线程上下文。因此,链表中的节点具有类型ucontext_t的成员,该成员保存特定线程的上下文。每当我尝试交换上下文时,在链表的末尾会添加一个节点。

typedef struct nodes
{
    long int t_id;
    ucontext_t u_contxt;
    struct nodes * next;

} nodes;

因此,每当我尝试交换上下文时,我都会遍历链接列表并将ucontext引用传递给swapcontext,如下所示,获取当前上下文。

temp1->u_contxt指向当前上下文,temp2->u_contxt指的是我想要更改的上下文

swapcontext(&(temp1->u_contxt),&(temp2->u_contxt));

在调用swapcontext之前,我只有2个节点,并且在从swapcontext返回后,还有一个节点被添加到linkedlist的末尾。

0 个答案:

没有答案