MQX 4.2 closesocket(), preemption might not be re-enabled

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

MQX 4.2 closesocket(), preemption might not be re-enabled

474件の閲覧回数
kfranz
Contributor III

In sock_close.c/closesocket(), if a streaming socket is abruptly closed, there is an instance where _task_start_preemption() is not called, but it should be. This means that preemption for the calling thread is disabled until a call to _task_start_preemption() occurs.

int32_t closesocket(uint32_t sock)
{

...

else

if(((uint32_t)socket_ptr->PROTOCOL) == SOCK_STREAM)
{
struct tcb_parm parms;

if(NULL == socket_ptr->TCB_PTR)
{
_task_start_preemption(); //***Add this call here ***
goto exit;
}

...

}

...

}

0 件の賞賛
返信
1 返信

413件の閲覧回数
danielchen
NXP TechSupport
NXP TechSupport

Thanks a lot for your feedback.    I will forward it to MQX team.

 

Regards

Daniel

0 件の賞賛
返信
%3CLINGO-SUB%20id%3D%22lingo-sub-2133498%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EMQX%204.2%20closesocket()%20%E3%81%A7%E3%81%AF%E3%80%81%E3%83%97%E3%83%AA%E3%82%A8%E3%83%B3%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%8C%E5%86%8D%E5%BA%A6%E6%9C%89%E5%8A%B9%E5%8C%96%E3%81%95%E3%82%8C%E3%81%AA%E3%81%84%E5%8F%AF%E8%83%BD%E6%80%A7%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2133498%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3Esock_close.c%2Fclosesocket()%20%E3%81%A7%E3%81%AF%E3%80%81%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%9F%E3%83%B3%E3%82%B0%20%E3%82%BD%E3%82%B1%E3%83%83%E3%83%88%E3%81%8C%E7%AA%81%E7%84%B6%E9%96%89%E3%81%98%E3%82%89%E3%82%8C%E3%82%8B%E3%81%A8%E3%80%81_task_start_preemption()%20%E3%81%8C%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%95%E3%82%8C%E3%81%AA%E3%81%84%E5%A0%B4%E5%90%88%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%E3%81%9F%E3%81%A0%E3%81%97%E3%80%81%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%95%E3%82%8C%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%E3%81%93%E3%82%8C%E3%81%AF%E3%80%81_task_start_preemption()%20%E3%81%AE%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%97%E3%81%8C%E7%99%BA%E7%94%9F%E3%81%99%E3%82%8B%E3%81%BE%E3%81%A7%E3%80%81%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%97Thread%E3%81%AE%E3%83%97%E3%83%AA%E3%82%A8%E3%83%B3%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%8C%E7%84%A1%E5%8A%B9%E3%81%AB%E3%81%AA%E3%82%8B%E3%81%93%E3%81%A8%E3%82%92%E6%84%8F%E5%91%B3%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3Eint32_t%20%E3%82%AF%E3%83%AD%E3%83%BC%E3%82%BA%E3%82%BD%E3%82%B1%E3%83%83%E3%83%88(uint32_t%20%E3%82%BD%E3%83%83%E3%82%AF)%3CBR%20%2F%3E%20%7B%3C%2FP%3E%3CP%3E...%3C%2FP%3E%3CP%3E%E3%81%9D%E3%81%86%E3%81%A7%E3%81%AA%E3%81%84%E5%A0%B4%E5%90%88%E3%80%81%3C%2FP%3E%3CP%3Eif(((uint32_t)socket_ptr-%26gt%3BPROTOCOL)%20%3D%3D%20SOCK_STREAM)%3CBR%20%2F%3E%20%7B%3CBR%20%2F%3E%E6%A7%8B%E9%80%A0%E4%BD%93%20tcb_parm%20%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF%3B%3C%2FP%3E%3CP%3Eif(NULL%20%3D%3D%20socket_ptr-%26gt%3BTCB_PTR)%3CBR%20%2F%3E%20%7B%3CBR%20%2F%3E%20_task_start_preemption()%3B%20%2F%2F***%E3%81%93%E3%81%AE%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%97%E3%82%92%E3%81%93%E3%81%93%E3%81%AB%E8%BF%BD%E5%8A%A0***%3CBR%20%2F%3E%E5%87%BA%E5%8F%A3%E3%81%B8%E8%A1%8C%E3%81%8D%E3%81%BE%E3%81%99%3B%3CBR%20%2F%3E%20%7D%3C%2FP%3E%3CP%3E...%3C%2FP%3E%3CP%3E%7D%3C%2FP%3E%3CP%3E...%3C%2FP%3E%3CP%3E%7D%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2140688%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20MQX%204.2%20closesocket()%2C%20preemption%20might%20not%20be%20re-enabled%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2140688%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%82%92%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%99%E3%80%82MQX%20%E3%83%81%E3%83%BC%E3%83%A0%E3%81%AB%E8%BB%A2%E9%80%81%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%E3%82%88%E3%82%8D%E3%81%97%E3%81%8F%E3%81%8A%E9%A1%98%E3%81%84%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CP%3E%E3%83%80%E3%83%8B%E3%82%A8%E3%83%AB%3C%2FP%3E%3C%2FLINGO-BODY%3E