fix: pipe 读取/写入阻塞时,无法kill进程的问题
修复了pipe等待的时候,没有处理信号,导致永远等待,kill不掉的问题
麻烦看看~
r? @GnoCiYeH @dragonosbot review
关联issue https://github.com/DragonOS-Community/DragonOS/issues/884
只看了宏的部分,感觉如果可以有可变返回类型,可以直接做阻塞IO的调用返回。
没懂你意思
只看了宏的部分,感觉如果可以有可变返回类型,可以直接做阻塞IO的调用返回。
没懂你意思
应该说,在这种设计下,可自行设计闭包,来在condition与cmd中共享cmd执行结果参数,从而实现阻塞io(根据结果为Err(EAGAIN)/Err(_)/Ok(result)来决定是继续阻塞轮询/返回错误/返回结果)
譬如smoltcp在判断can_recv后接着recv操作也不是保证一定能返回成功的,这时候似乎就要用闭包来共享结果到condition表达式中了?
另一方面,自己直接用wait_queue来实现io的阻塞,不符合封装,也容易造成这种没有处理interrupt信号的问题。
只看了宏的部分,感觉如果可以有可变返回类型,可以直接做阻塞IO的调用返回。
没懂你意思
应该说,在这种设计下,可自行设计闭包,来在condition与cmd中共享cmd执行结果参数,从而实现阻塞io(根据结果为Err(EAGAIN)/Err(_)/Ok(result)来决定是继续阻塞轮询/返回错误/返回结果)
譬如smoltcp在判断can_recv后接着recv操作也不是保证一定能返回成功的,这时候似乎就要用闭包来共享结果到condition表达式中了?
另一方面,自己直接用wait_queue来实现io的阻塞,不符合封装,也容易造成这种没有处理interrupt信号的问题。
你所说的内容,这个宏就能实现了。