毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> linux >> 正文

用posix_timer创建定时器内存泄露 第2页

更新时间:2012-10-29:  来源:毕业论文

==7258== definitely lost: 0 bytes in 0 blocks
==7258== indirectly lost: 0 bytes in 0 blocks
==7258== possibly lost: 144 bytes in 1 blocks
==7258== still reachable: 0 bytes in 0 blocks
==7258== suppressed: 0 bytes in 0 blocks
==7258== 
==7258== For counts of detected and suppressed errors, rerun with: -v
==7258== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 17 from 8)
[root@localhost Debug]# 

我哪里使用错误?还是valgrind有问题?请指定,谢谢!
valgrind 没有用过,看起来未释放的是pthread tls内存。

楼主可以试试建立一个只包含空的main函数的程序,然后用valgrind检查看看。 问题出现在
SetTimer(void (*)(sigval), void*&, int, int) (main.cpp:38)
main (main.cpp:55)

代码中
SetTimer(pfun,tid1,13,1);
typedef void(*pFun)(sigval_t);不可能释放的,原因可能是这样的:

  se.sigev_notify = SIGEV_THREAD;
  se.sigev_notify_function = pfun;

会让系统启动一个线程,当定时器时间到了之后,就会在这个线程里调用pfun,而这个线程启动之后是不会停止的。

要不你改为
se.sigev_notify = SIGEV_NONE;
或者
se.sigev_notify = SIGEV_SIGNAL;
试试。

上一页  [1] [2] 

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。