- 前言
之前研究过cyclictest的源码,详见:
http://blog.csdn.net/sakaue/article/details/17843761
现在再研究下signaltest的源码
- 正文
signaltest的程序结构与cyclictest大致类似。不同的是,cyclictest通过检测线程睡眠时间期望与实际之间的误差来检测性能。signaltest通过起n个线程,每个线程函数开始后就循环阻塞地等待信号,由主线程向第一个线程发送post给第二个线程,第二个线程向第三个线程,这样一个线程一个线程之间互相接力发送post,到第n个线程再向第一个线程发送post。这样,各个线程之间又通过信号量组成了一个循环队列,如图:
和cyclictest一样,signaltest也有个for循环num_threads次,每次迭代中给对应的thread_param结构体初始化(Line:348),thread_param结构如下:
struct t