关于linux的定时器问题
orasy 2012-02-08 03:00:26
主线程等在一个buffer的信号量上(拿到表示buffer有了可用数据),如果信号量拿到后,会去等一个互斥量进行buffer的访问。
问题是,主线程还需要一个定时功能。根据现在的设计,我想通过一个alram信号完成此种功能。就是用alram(1),alarm处理函数,向buffer中放入定时消息到的数据,并post 信号量。
现在的问题:
1)如果主线程一直处在信号量等待状态(应该是在内核态),这时信号是不是一直不会激发?
2)如果信号激发,信号处理函数是以一个独立的临时线程来运行吗?否则前面的设计有死锁危险,如果主线程拿了buffer的互斥量,而信号处理函数去等这个互斥量。