LWIP + RTOS - как избежать навсегда блокировки потока netconn?

Когда вызывается функция LwIPnetconn_accept()или netconn_recv(), если мы используем RTOS, она блокирует поток и ожидает соединения до истечения времени или навсегда , зависит от настройки LWIP_SO_RCVTIME0. Длительность тайм-аута равна SYS_ARCH_TIMEOUT.

SYS_ARCH_TIMEOUTопределяется как 0xffffffffв ядре, включающем часть стека LwIP, поэтому я не думаю, что он будет изменен.

На самом деле, я хочу, чтобы он проверял, установлено ли соединение, и если нет, то продолжал поток. Однако, если я вызову netconn_accept(), он просто заблокирует поток и будет ждать там вечно (или очень долго)... Я не хочу просто менять значение определения SYS_ARCH_TIMEOUT, потому что мне нужно разное время ожидания в разных ситуациях...

Как это сделать? Спасибо.

5
задан Viktor Latypov 1 June 2012 в 10:56
поделиться