lwip-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lwip-users] about lwip_close() and lwip_connect() problem


From: xcbman
Subject: [lwip-users] about lwip_close() and lwip_connect() problem
Date: Tue, 20 May 2008 12:14:48 +0800

I use lwip1.3.0 in winxp.

I have a problem(maybe is a bug) with socket (lwip_close() and lwip_connect() function)

Two thread:

Thread1: socket()->connect(sock)->send/recv()->close();

Thread2:close(sock)

 

When thread1 calling socket connecting() ,before socket connected,thread2 calll close(sock),result is :thread1->connect() return connected(not real connected),and thread2->close() can’t return(maybe wait for sys_arch_sem_wait(apimsg->msg.conn->op_completed, 0);),this offen happen.

 

Trace lWIP code,find:

Connect() and close() call tcpip_apimsg(),but tcpip_apimsg() function is controled by apimsg->msg.conn->op_completed;

Connect()=>netconn_connect()=>tcpip_apimsg()=>do_connect()=> sys_arch_sem_wait(apimsg->msg.conn->op_completed, 0);

Close()=>netconn_delete()=>tcpip_apimsg()=>do_delconn()=>sys_arch_sem_wait(apimsg->msg.conn->op_completed, 0);

do_delconn()=>do_close_internal(msg->conn);=> sys_sem_signal(conn->op_completed);//this signal call connect() return; and close() wait for sys_arch_sem_wait(apimsg->msg.conn->op_completed, 0)

 

please check it and help me to resolve this problem.

 

xcbman
2008-05-20

reply via email to

[Prev in Thread] Current Thread [Next in Thread]