aliyun / iotkit-embedded

高速镜像: https://code.aliyun.com/linkkit/c-sdk
Apache License 2.0
496 stars 252 forks source link

带系统运行sdk,出现IOT_MQTT_Yield死循环 #107

Closed adg7660 closed 5 years ago

adg7660 commented 5 years ago

你好,我现在建立了多任务,将IOT_MQTT_Yield单独放在一个任务里运行,但是通常2/3天后就会出现无心跳(1min心跳)的现象,我加入了一个定时器检测IOT_MQTT_Yield任务并没有运行了,可能在某个地方出现了死循环

uint8_t yield_task_run_flag = 0;
void Ali_Yield_Main(void *pclient)
{
    log_info("---> Enter Ali_Yield_Main[%08x]", pclient);
    while(1)
    {
        IOT_MQTT_Yield(pclient, 200);
        yield_task_run_flag = 1;
        COS_Sleep(200);
    }
}
edwardyangx commented 5 years ago

请问是什么操作系统上发生的呢

titawork commented 5 years ago

这个问题一直有 ,不知道为什么一直不修正,我现在的解决办法是 ,使用3个线程,一个用于发送,一个用于调用 IOT_MQTT_Yield 接收,一个用于检查MQTT的状态负责重连

adg7660 commented 5 years ago

请问是什么操作系统上发生的呢 RDA8955上的ecos