NevermindZZT / cpost

c语言程序上下文切换和解耦的工具
MIT License
270 stars 97 forks source link

关于cpost和cevent理解请教一下 #2

Open lucienhuan opened 3 years ago

lucienhuan commented 3 years ago

这个cpost相当于把中断或者对于时间不敏感的处理抛出类似于进入队列的形式,在mainloop中不断从这个队列中取出执行,然后cevent是不是类似于把需要第一个时间段处理的任务在各个c文件或者需要的地方进行注册,也类似于上述的队列,然后把第一步需要执行的操作,注册到任务一队列,第二部执行的注册到任务二队列,然后再main中按照任务顺序执行,如果需要重复,就把需要循环的任务注册到一个队列里面。这部分关于初始化的解耦,我感觉用attribute((constructor(pority)))可以同样的实现,而重复需要mainloop的任务就用cpost这样一个压入队列的操作就可以 了?

NevermindZZT commented 3 years ago

cevent是在发出事件的地方直接执行所有注册到这个事件的函数

lucienhuan commented 3 years ago

@NevermindZZT 是不是也是,在需要执行的地方,比如发生某个事件或者中断,然后需要执行,注册进来的函数都会被执行

NevermindZZT commented 3 years ago

@lucienhuan 是的