Changeset 5571

Show
Ignore:
Timestamp:
06/03/08 16:00:40 (3 months ago)
Author:
morris
Message:

Add timer test, minor implementation tweaks

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • libwired/trunk/libwired/thread/wi-timer.c

    r5302 r5571  
    2929#include "config.h" 
    3030 
    31 #ifdef WI_PTHREADS 
     31#ifndef WI_PTHREADS 
     32 
     33int wi_timer_dummy = 0; 
     34 
     35#else 
    3236 
    3337#include <pthread.h> 
     
    3640#include <wired/wi-lock.h> 
    3741#include <wired/wi-log.h> 
     42#include <wired/wi-macros.h> 
    3843#include <wired/wi-private.h> 
    3944#include <wired/wi-runtime.h> 
     
    4247#include <wired/wi-timer.h> 
    4348 
    44 #define _WI_TIMER_EPSILON                              0.2 
     49#define _WI_TIMER_MINIMUM_INTERVAL             0.001 
    4550 
    4651 
     
    139144                        interval = wi_time_interval(); 
    140145 
    141                         if(timer && timer->fire - interval <= _WI_TIMER_EPSILON
     146                        if(timer && timer->fire - interval <= _WI_TIMER_MINIMUM_INTERVAL
    142147                                fire_timer = wi_retain(timer); 
    143148                } else { 
    144149                        diff = timer->fire - interval; 
    145150 
    146                         if(diff <= _WI_TIMER_EPSILON) { 
     151                        if(diff <= _WI_TIMER_MINIMUM_INTERVAL) { 
    147152                                fire_timer = wi_retain(timer); 
    148153 
     
    187192wi_timer_t * wi_timer_init_with_function(wi_timer_t *timer, wi_timer_func_t *func, wi_time_interval_t interval, wi_boolean_t repeats) { 
    188193        timer->func = func; 
    189         timer->interval = interval
     194        timer->interval = WI_MAX(interval, _WI_TIMER_MINIMUM_INTERVAL)
    190195        timer->repeats = repeats; 
    191196         
     
    248253 
    249254        timer->scheduled = false; 
     255        timer->repeats = false; 
    250256} 
    251257 
     
    271277 
    272278void wi_timer_reschedule(wi_timer_t *timer, wi_time_interval_t interval) { 
    273         timer->interval = interval
     279        timer->interval = WI_MAX(interval, _WI_TIMER_MINIMUM_INTERVAL)
    274280 
    275281        if(timer->scheduled)