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之外就再没有测到这个问题了。

      

  • 相关阅读:
    网络连接 长连接 短链接
    提升系统的QPS和吞吐量
    QPS/TPS/并发量/系统吞吐量的概念
    spring与mybatis四种整合方法
    理解HTTP之keep-alive
    MyBatis 3 使用注解配置SQL映射器
    Dubbo -- Simple Monitor
    Dubbo后台管理和监控中心部署
    Socket通讯-Netty框架实现Java通讯
    Netty 能做什么
  • 原文地址:https://www.cnblogs.com/ceblog/p/1876116.html
Copyright © 2011-2022 走看看