你可能误解我的意思了。
1.
我是说time_wheel有自己的时间精度设置，但是这个设置的优先级低于time_resolution。就是说如果如果用户设置了timer_resolution，那time_wheel模块就以这个值为基准初始化自己工作，如果没有设置timer_resolution，那就以time_wheel自己的时间精度初始化工作，如果这个也没有设置，报错。

2. 现在有timer_resolution和time_wheel_resolution两个参数，他们矛盾么？他们不矛盾。为什么呢？time_wheel本身是一个独立模块，不需要和timer_resolution绑在一起。使用time_wheel完全不需要timer_resolution的支持。可以说，有了这个参数，用户用到timer_resolution的情况可以减少。其次，如果用户真的用了timer_resolution，那time_wheel也可以正常工作（但是不提倡两个都用）。

3. 引用：
     timer_wheel 不用timer_resolution指定的值, 用自己定义的值,这个值就应该小于timer_resolution,
以保证timer_resolution指定的时间精度.      timer_wheel没有办法保证精度为0啊, heap等是可以保证的.

这个问题你看nginx这段代码

ngx_process_events_and_timers(ngx_cycle_t *cycle)
{
if (ngx_timer_resolution) {
timer = NGX_TIMER_INFINITE;
flags = 0;
} else {
timer = ngx_event_find_timer();
flags = NGX_UPDATE_TIME;
}

简言之，设置了timer_resolution以后，nginx就完全不调用这些算法，这就是我说的第一种情况。这种情况下，保证精度毫无必要。


On Fri, Mar 8, 2013 at 12:39 PM, Chai Zhenhua <notifications@github.com>wrote:

> In src/event/timer/ngx_timer_wheel.c:
>
> > +static char *
> > +ngx_timer_wheel_init_conf(ngx_cycle_t *cycle, void *conf)
> > +{
> > +    ngx_timer_wheel_conf_t *cf = conf;
> > +    ngx_core_conf_t        *ccf;
> > +    ngx_timer_conf_t       *tcf;
> > +
> > +    tcf = ngx_timer_get_conf(cycle->conf_ctx, ngx_timer_module);
> > +    ccf = (ngx_core_conf_t *) ngx_get_conf(cycle->conf_ctx, ngx_core_module);
> > +
> > +    if (tcf->use == ngx_timer_wheel_module.index) {
> > +
> > +        if (ccf->timer_resolution == 0) {
> > +
> > +            ngx_log_error(NGX_LOG_EMERG, cycle->log, 0,
> > +                          "when use \"wheel\" timer type, timer resolution must be specified");
>
> 我的想法是一个配置项不能与其他配置的原有行为产生冲突.
>
> —
> Reply to this email directly or view it on GitHub<https://github.com/alibaba/tengine/pull/191/files#r3293541>
> .
>



-- 

--

Charles Chen

Software Engineer

Server Platforms Team at Taobao.com