Android培训班(14)

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 05:06 点击:

#200 

#201      for(;;) {

#202          int nr, i, timeout = -1;

这段代码是进入死循环处理,以便这个init进程变成一个服务。

 

#203 

#204          for (i = 0; i < fd_count; i++)

#205              ufds[i].revents = 0;

这段代码是清空每个socket的事件计数。

 

#206 

#207          drain_action_queue();

这段代码是执行队列里的命令。

 

#208          restart_processes();

这句代码是用来判断那些服务需要重新启动。

 

#209 

#210          if (process_needs_restart) {

#211              timeout = (process_needs_restart - gettime()) * 1000;

#212              if (timeout < 0)

#213                  timeout = 0;

#214          }

这段代码是用来判断那些进程启动超时。

 

 

#215 

#216  #if BOOTCHART

#217          if (bootchart_count > 0) {

#218              if (timeout < 0 || timeout > BOOTCHART_POLLING_MS)

#219                  timeout = BOOTCHART_POLLING_MS;

#220              if (bootchart_step() < 0 || --bootchart_count == 0) {

#221                  bootchart_finish();

#222                  bootchart_count = 0;

#223              }

#224          }

#225  #endif

这段代码是用来计算运行性能。

 

#226          nr = poll(ufds, fd_count, timeout);

#227          if (nr <= 0)

#228              continue;

这段代码用来轮询几个socket是否有事件处理。

 

#229 

#230          if (ufds[2].revents == POLLIN) {

#231              /* we got a SIGCHLD - reap and restart as needed */

#232              read(signal_recv_fd, tmp, sizeof(tmp));

#233              while (!wait_for_one_process(0))

#234                  ;

#235              continue;

#236          }

这段代码是用来处理子进程的通讯,并且能删除任何已经退出或者杀死死进程,这样做可以保持系统更加健壮性,增强容错能力。

 

 

#237 

#238          if (ufds[0].revents == POLLIN)

#239              handle_device_fd(device_fd);

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • Android 完全退出程序
    • 原创:Android应用开发-Andorid歌词秀,含源码
    • android 屏幕保护
    • Android手机软件汉化教程---第四课 dex文件汉化
    • 众多Android 开源项目推荐,给力工作给力学习
    • Android Audio代码分析4
    • Android得到已安装的应用程序信息!
    • Android开发者指南(29) —— USB Host and Accessory
    • Android成长的幕后推手:工程师鲁宾
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1