程序使用KCP协议,代码使用的多线程循环调用ikcp_update(kcp, millisec); 不定期会出现异常退出问题,经过调试每次停在void ikcp_flush(ikcpcb *kcp)函数中,经过反复调试问题在for(p=kcp->snd_buf.next; p!=&kcp->snd_buf; p=p->next)函数中,p指针和p->next指针指向是同一个地址,导致无限循环。
后改为单线程,使用定时器驱动后正常。
程序使用KCP协议,代码使用的多线程循环调用ikcp_update(kcp, millisec); 不定期会出现异常退出问题,经过调试每次停在void ikcp_flush(ikcpcb *kcp)函数中,经过反复调试问题在for(p=kcp->snd_buf.next; p!=&kcp->snd_buf; p=p->next)函数中,p指针和p->next指针指向是同一个地址,导致无限循环。
后改为单线程,使用定时器驱动后正常。