Commit Graph

23 Commits

Author SHA1 Message Date
大石头X2 ed59ad12b4 减少任务调度的Cost日志 2016-12-15 16:35:38 +08:00
Stone 4223944e88 !!!修正临时开启的任务可能无法马上调度的BUG。
A任务ID小于B任务,大循环时首先被检查。此时如果B任务修改A任务下一次执行时间为0,那么可能因为这一次大循环所有任务的下一次执行时间都很长,导致A任务无法按照预期得到马上执行。
这里修改为,修改A任务的下一次执行时间时,要求大循环无条件跳过一次大睡眠,结束一轮大循环后马上开始下一轮。
在调光产品上测试呼吸灯通过。
2016-11-14 06:05:46 +00:00
nnhy 7429f4ce2c 直接引用头文件,避免SmartOS上层需要包含太多的头部目录 2016-10-29 02:59:28 +00:00
WangQiang eee1f14e3a 给外部可以获取任务的能力 只返回符合要求的信息 2016-07-23 02:14:16 +00:00
nnhy 6afad5654e 使用TimeSpan显示已启动时间 2016-07-19 02:14:56 +00:00
Stone 6bd9ae62e0 比较的时间单位是毫秒 2016-07-02 11:04:55 +00:00
Stone 548a03f4f2 还没有经过调度的普通任务,在剩余时间超过500ms时,也给予调度机会
调试WiFi产品发行版时发现,打开8266需要等待3000ms,然后看门狗没有被调度过,导致没有机会执行
2016-07-02 09:56:38 +00:00
Stone 06a4313ff6 重用任务对象时,记得清空各参数 2016-06-27 13:24:08 +00:00
Stone 33e387f863 系统内核Time.h改名为TTime.h,否则在gcc和clang上会跟C库的time.h冲突。
同时,MDK不支持<ctime>的引用方式,用宏解决
2016-06-22 09:50:16 +00:00
Stone 8a95bed243 睡眠时间单位是us 2016-06-21 04:26:35 +00:00
Stone 2cecbbeb88 有可能这一次轮询是有限时间 2016-06-21 04:15:49 +00:00
Stone 72aadaa942 即使事件型任务,也可能有较长的执行时间,不能在Sleep里面安排调度。
任务轮询调度后,Sleep状态时不能睡眠,至少也要判断阀值
2016-06-21 04:13:45 +00:00
Stone e0d738e452 事件型任务,并且当前可用时间超过10ms,允许调度 2016-06-20 10:05:18 +00:00
Stone 67f6d3b553 修正任务等待调度增加一层以后,没有判断等待已取消的错误 2016-06-20 05:11:58 +00:00
Stone 8b9a10ebf3 修正可能出现时间溢出导致任务调度错误的BUG 2016-06-20 05:05:11 +00:00
Stone 849ff61678 2016-06-19 16:02:48 +00:00
Stone 884c417eb5 任务管理增加ExecuteForWait,统一Sys.Sleep和WaitHandle 2016-06-19 15:52:50 +00:00
Stone 44e5b22e26 严格要求代码,排除编译警告 2016-06-18 08:12:52 +00:00
Stone 00163b5cf0 Task增加当前任务 2016-06-17 02:13:13 +00:00
Stone d7663a4bc3 等待句柄的WaitOne需要循环调度,测试通过 2016-06-16 08:35:40 +00:00
Stone 6f54299e5c 增加等待句柄WaitHandle,替代时间轮,直接干涉系统调度 2016-06-16 07:57:15 +00:00
Stone f03e134606 增加AddTask,支持成员函数作为任务函数 2016-06-13 14:18:47 +00:00
Stone 532150941f 系统内核和外设驱动分别独立到不同目录 2016-06-13 04:05:30 +00:00