找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 4849|回复: 1

注意ACE_Proactor的cancel_timer方法

[复制链接]
发表于 2008-7-15 23:41:06 | 显示全部楼层 |阅读模式
int ACE_Proactor::cancel_timer  ( long  timer_id, const void **  act = 0,int dont_call_handle_close = 1    )   [virtual]

通过跟踪发现:dont_call_handle_close 这个参数无论怎么设置,都没用。原本以为是能自动调用处理器的handle_close方法,自动删除自己的,结果发现根本不是,理解错误。需要自己delete this.
导致软件产生内存泄漏。其实通过代码也可以看见,ACE_Proactor需要使用的schedule_timer (ACE_Handler  &handler ...) 中的ACE_Handler,没有handle_close虚方法,所以也不会被调用。
 楼主| 发表于 2008-7-15 23:41:14 | 显示全部楼层
If you using ref_count, handlers will be safely delete by reactor when count=0. You don't need delete this any more.
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-11-27 12:08 , Processed in 0.022296 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表