Description: fix async work task crash issue
IssueNo: I4CGY3
Feature or Bugfix: Feature
Binary Source:No

Signed-off-by: jiadexiang jiadexiang@huawei.com

相关的Issue

IssueNo: I4CGY3

原因(目的、解决的问题等)

当在遍历 task 链表进行处理的过程中,在处理的迭代过程中,如果 hanlder 的执行已经将当前处理的这个 task 节点给删除释放了,那么继续操作就会发生 空指针或野指针内存访问异常;产生crash;

在 handler 处理结束后,主动判断当前head节点是否与我们当前处理的 task 节点是一致的,因为我们在处理之前取的 task 节点就是 head 节点,如果不一样,则说明 hanlder 过程中已经将当前处理的这个 task 节点给删除释放了,这样的话就不能进行重复释放和后续操作了;继续操作就会发生 空指针或野指针内存访问异常;

描述(做了什么,变更了什么)

在处理的迭代过程中,在 handler 处理结束后,主动判断当前head节点是否与我们当前处理的 task 节点是一致的,如果不一致,则说明 hanlder 执行已经将当前处理的这个 task 节点给释放了,那么直接 continue 进行下一个迭代遍历;不再继续处理当前 task 节点;

测试用例(新增、改动、可能影响的功能)