Open whj4674672 opened 3 years ago
在等待队列使用的时候会
int rt_wqueue_wait(rt_wqueue_t *queue, int condition, int msec) { __wait.polling_thread = rt_thread_self(); __wait.key = 0; __wait.wakeup = __wqueue_default_wake;
但是 wake up 这个函数的设计初衷应该是由用户自己来实现这个唤醒函数吧,但是这里默认写了永远返回 0,看起来这个设计是不合理的。
0
int __wqueue_default_wake(struct rt_wqueue_node *wait, void *key) { return 0; }
那么设计这个函数的时候,是不是可以考虑增加一个形参或者其他的方式,让用户可以自定义自己的 wake up 函数。
就是让用户来实现另外的,否则就只能是这个用于default 0。
那么在 rt_wqueue_wait 的时候怎么把用户的函数指针传递进来呢?
rt_wqueue_wait
现有的方式,需要修改 waitqueue.c 的代码。让用户自己传递自己的 wake up 是否更合理
waitqueue.c
wake up
直接结构体赋值,或者再加个API?
加个 API 的方式不会对原来的代码产生任何影响
API
在等待队列使用的时候会
但是 wake up 这个函数的设计初衷应该是由用户自己来实现这个唤醒函数吧,但是这里默认写了永远返回
0
,看起来这个设计是不合理的。那么设计这个函数的时候,是不是可以考虑增加一个形参或者其他的方式,让用户可以自定义自己的 wake up 函数。