示例#1
0
int delete_timer(int id,int (*func)(int,unsigned int,int,int))
{
	if(id<=0 || id>=timer_data_num ){
		printf("delete_timer error : no such timer %d\n",id);
		return -1;
	}
	if(timer_data[id].func != func){
		printf("delete_timer error : function dismatch %08x(%s) != %08x(%s)\n",
			   (int)timer_data[id].func,search_timer_func_list(timer_data[id].func),
			   (int)func,search_timer_func_list(func));
		return -2;
	}
	// そのうち消えるにまかせる
	timer_data[id].func = NULL;
	timer_data[id].type = TIMER_ONCE_AUTODEL;
	timer_data[id].tick-= 60*60*1000;
	return 0;
}
示例#2
0
int add_timer_interval(unsigned int tick, int (*func)(int,unsigned int,int,int), int id, int data, int interval)
{
	int tid;

	if (interval < 1) {
		ShowError("add_timer_interval : function %08x(%s) has invalid interval %d!\n",
			 (int)func, search_timer_func_list(func), interval);
		return -1;
	}
	
	tid = acquire_timer();
	timer_data[tid].tick	= tick;
	timer_data[tid].func	= func;
	timer_data[tid].id		= id;
	timer_data[tid].data	= data;
	timer_data[tid].type	= TIMER_INTERVAL;
	timer_data[tid].interval = interval;
	push_timer_heap(tid);

	if (tid >= timer_data_num)
		timer_data_num = tid + 1;

	return tid;
}