游离信号量

游离信号量应该是Symbian使用AO时经常遇到的问题,E32USER-CBASE 46 panic,这个咚咚曾经也给我带来无穷的烦恼。

这里稍微总结下哪些行为可能会导致游离信号量。

1. 使用AO的类的析构函数没有调Cancel().

2. AO使用类的构造函数没有调用CActiveScheduler::Add().

3.发异步请求后没有调用SetActive().

4. 异步请求的服务端多次Complete.

原因千变万化,以上列举的肯定不全,仅作参考。

在处理游离信号量的时候,必须找出哪个AO发出的请求导致后面的游离信号量,最好的方式就是在所有的AO里打log,一个个的排除直道找出真凶。

还有一种方式是用Hooklogger,不过本人没经验,无法分享。

posted on 2010-06-03 09:01  魏方  阅读(173)  评论(0编辑  收藏  举报

导航