Open deqoder opened 1 year ago
一个struct at_device中有一个rt_event_t socket_event; 但是有N个struct at_socket *sockets; 每次connect或send或close时,会先清一下事件,然后等事件发生; 虽然at_obj_exec_cmd是加锁的,但清事件写在外面没有加锁, 所以有可能,其中一个线程再等事件,另一个刚调用,就会误清事件。
我仔细看了一下,send函数都加锁了,但connect和close没有加
可否提交一个PR呀
我觉得应该把rt_event_t socket_event放在struct at_socket里,每个socket独立使用自己的event
一个struct at_device中有一个rt_event_t socket_event; 但是有N个struct at_socket *sockets; 每次connect或send或close时,会先清一下事件,然后等事件发生; 虽然at_obj_exec_cmd是加锁的,但清事件写在外面没有加锁, 所以有可能,其中一个线程再等事件,另一个刚调用,就会误清事件。