找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 3131|回复: 1

ace_message_block release出问题了

[复制链接]
发表于 2009-1-9 17:40:11 | 显示全部楼层 |阅读模式
我的问题是这样的:网络收集到的视频数据,转发多份到客户端,在数据量比较大的天情况下(小包),不定时在ACE_Message_Block Release时会出现非法(vc2005开着调试时不大出现,有10多天的测试,开release时比较容易出现,2天左右)。用的是前摄器+线程池+主动对象+内存池。

内存池用分配器创建管理:
ACE_NEW(mb_allocator_, ACE_Dynamic_Cached_Allocator<ACE_Thread_Mutex>(mb_count_, mb_size));

ACE_Message_Block创建如下
mb = new ACE_Message_Block(len, ACE_Message_Block::MB_DATA, 0, 0,
            mb_allocator_, 0, ACE_DEFAULT_MESSAGE_BLOCK_PRIORITY,
            ACE_Time_Value::zero, ACE_Time_Value::max_time, 0, 0);


ACE_Message_Block在接收到数据后申请一次,放入到主动对象的发送线程列表加一次引用计数,发送时再增加一次计数
Relese也是三次,感觉没有错,


现在这个问题比较麻烦,望高手指点迷津,谢谢
发表于 2009-2-25 21:53:58 | 显示全部楼层
个人认为,还是从内存、线程角度去查一下。用purify工具跑跑比较好。
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

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

GMT+8, 2024-12-23 22:32 , Processed in 0.017464 second(s), 7 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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