#!/usr/bin/env python
from heapq import *
from threading import timer
import threading
import uuid
import time
import datetime
import sys
import math
global timerstamp
global timertimes
class cancelfail(exception):
pass
class slot(object):
def __init__(self, period=0, interval=1, function=none, args=[], kwargs={}):
self.period = period
self.pc = 0
self.interval = interval
self.fire = 0
self.id = uuid.uuid1()
self.function = function
self.args = args
self.kwargs = kwargs
#system resolution millisecond
class newtimer(object):
#set enough time make thread sleep, when newtimer empty set enoug time, too
#make sure sum of your timer call back function execute time shorter than resolution
#todo use a worker thread to operate timer call back function
def __init__(self, resolution=1000):
global timerstamp
timerstamp = int(time.time() * 1000)
self.nofire = sys.maxint #next fire time interval
self.firestamp = self.nofire + timerstamp
self.resolution = resolution# 1s
self.lock = threadi