Open liuanwang opened 7 years ago
目前agent代码对网络的处理是,一个线程recv,一个线程send,还有一个主线程负责处理sg_client的控制命令,正常运行中没有冲突,但是在disable_SG的时候,存在冲突的可能 原因是这时候主线程会操作socket,向sg_client发送delete vol命令,sg_client处理完后会发送reply,这时候主线程进行了对socket的数据收发,可能会和另外两个线程产生冲突 解决方法:1,重新对recv和send线程进行消息类型封装,主线程往线程的命令队列里push数据,不再操作socket 2,在内核实现epoll,通过一个线程处理socket
目前agent代码对网络的处理是,一个线程recv,一个线程send,还有一个主线程负责处理sg_client的控制命令,正常运行中没有冲突,但是在disable_SG的时候,存在冲突的可能 原因是这时候主线程会操作socket,向sg_client发送delete vol命令,sg_client处理完后会发送reply,这时候主线程进行了对socket的数据收发,可能会和另外两个线程产生冲突 解决方法:1,重新对recv和send线程进行消息类型封装,主线程往线程的命令队列里push数据,不再操作socket 2,在内核实现epoll,通过一个线程处理socket