利用压力测试来保证软件的质量(六) 死锁问题
2010-09-10 21:10 王克伟 阅读(348) 评论(0) 编辑 收藏 举报DeadLock的一个可怕后果就是UI Hang住了(界面没反应),你一般会看到这个进程是Shell32.exe。
现在遇到一个Theme相关的Dead Lock问题:
\DumpFile\Dead Lock\20100704_DeadLock_poutlook.exe
\DumpFile\Dead Lock\20100703_DEADLOCK_poutlook.exe
\DumpFile\Dead Lock\20100627_DEADLOCKpoutlook.exe
\DumpFile\Dead Lock\20100622_DEADLOCKpoutlook.exe
\DumpFile\Dead Lock\20100707_DeadLockpoutlook.exe
如果用户改了theme,CThemePrimitive::UpateThread就会wake up起来
去更新theme的设置
这个时候会先enter theme内部的一个锁,然后调GDI的API做一些绘制的操作,当然GWES内部也有一个锁需要lock
另一方面GWES Control,在实现绘制的时候,需要调用theme API得到theme的设置
在调到theme API之前,因为是GWES的Control所以已经获得了GWES内部的锁,于是dead lock
两个锁theme的和GWES的,加锁的顺序反了
作者: 王克伟
出处: http://wangkewei.cnblogs.com/
版权声明: 本文的版权归作者与博客园共有。转载时须注明本文的详细链接,否则作者将保留追究其法律责任的权利。
您可以从这里更方便的找到我的文章。
出处: http://wangkewei.cnblogs.com/
版权声明: 本文的版权归作者与博客园共有。转载时须注明本文的详细链接,否则作者将保留追究其法律责任的权利。
您可以从这里更方便的找到我的文章。