zoukankan      html  css  js  c++  java
  • 不能待机问题之跟踪

      前些天接到一个BUG:系统有时不能待机,即发出待机命令之后很常时间都不能进入Suspend状态,如果再让其进入ON状态也能成功。测试发现如果使用一个程序再释放一下unattended状态系统还能进入Suspend状态。初步判断是某个程序使用了unattended状态之后没有释放,所以在使用了unattended状态的程序中都加了调试信息,结果发现所有的程序进出unattended状态都是成对的,也就是说对这个状态的使用是正常的。

      后来注意到锁屏程序在resuming状态时设置了unattended,即使用系统的unattended计数增加。而不能待机时之前唤醒的调试信息显示resuming时设置unattended和驱动中设置系统到ON状态的信息排在一起,就是说这两个动作非常近。由此想到可能是接近同时做这两件事件有问题,可能引起系统进入了某种错误的状态。这样做了一个实验,驱动中检测到resuming时Sleep1毫秒再让系统进入ON状态,以便使锁屏程序设置unattended与驱动设置系统到ON能够接近同时进行,这样一来发现出问题的概率高了很多,原来近乎不确定的问题变得相当容易出现。由此确定就是这样的原因。

      将锁屏程序设置unattended状态的代码移到resuming之外就再没有测到这个问题了。

      

  • 相关阅读:
    C if语句判断年龄
    C 计算时间差
    C 计算身高
    JRebel激活破解完美解决方式
    Maven optional和scope
    判断当前时间是否在某个时间段内
    给定时间加上几个小时
    RabbitMQ学习笔记
    浏览器、服务器会话
    Maven核心知识点梳理
  • 原文地址:https://www.cnblogs.com/ceblog/p/1876116.html
Copyright © 2011-2022 走看看