|
|
我有一组全局指针:char *ptr1, ptr2,=malloc(),这些指针从程序开始到结束时都是 有效的。
然后启动一组线程对这些指针数据进行编辑pthread_create(pthread_id1, &routine, ptr1)...
我想在每个线程里安装某信号的处理函数,该函数要对该线程的ptr进行修改
问题是:
信号处理 函数不能传参数啊!就是不能给信号处理函数传ptr参数!
我想过用线程私有数据,把每个线程的ptr作为线程的私有数据然后在信号处理函数里就可以得到了该ptr了。不过这样当线程结束时就会释放调私有数据的内存(ptr),以后就无效了。
有没有好的办法啊,我看大家不给信号处理函数传参数也用得好好的。 |
|