예제 #1
0
 def __init__(self):
     self.state = None
     self.state_lock = util.RWLock()
     self.done = False
     self.done_lock = util.RWLock()
     self.trajectory = []
     self.trajectory_lock = util.RWLock()
예제 #2
0
파일: race.py 프로젝트: sgowal/cirkuit-py
 def __init__(self, circuit_name=None):
     self.circuit = circuit_analyzer.GetAnalyzableCircuit(circuit_name)
     self.must_stop_lock = util.RWLock()
     self.must_stop = False
     self.snapshot_lock = util.RWLock()
     self.player_to_play = None
     self.players = []
     self.thread = None
예제 #3
0
파일: game.py 프로젝트: sgowal/cirkuit-py
 def __init__(self, creator, max_players, circuit_name=None):
   self.players_lock = util.RWLock()
   self.id = ''.join(random.choice(string.ascii_letters) for _ in xrange(_ID_LENGTH))
   self.creation_date = int(time.time())
   self.refresh_date = int(time.time())
   self.max_players = max_players
   self.players = []
   self.creator = creator
   self.race = engine.Race(circuit_name)
   self.user_dict = None
   self.race_started = False
   self.race_lock = util.RWLock()
   self.AddPlayer(creator)
예제 #4
0
 def __init__(self):
     # The next move variable is accessed concurrently.
     self.condition = threading.Condition(threading.Lock())
     self.next_move = None
     self.is_playing = False
     self.is_playing_lock = util.RWLock()
     Player.__init__(self)
예제 #5
0
from matplotlib.patches import Polygon
import numpy as np
from scipy import spatial
from scipy import interpolate
from shapely import geometry
from shapely import prepared

import circuit
import util

_OFFSET_FACTOR = 0.1  # Must be strictly smaller than 1/3.
_EXTRA_LENGTH = _OFFSET_FACTOR * 3.  # Compensation for slightly offsetting the finish point.
_EPSILON = 1e-5

analyzer_instances = {}
analyzer_instances_lock = util.RWLock()


def GetAnalyzer(name=None, plot=False):
    if name is None:
        name = circuit._DEFAULT_CIRCUIT_NAME
    with analyzer_instances_lock(util.READ_LOCKED):
        if name in analyzer_instances:
            analyzer = analyzer_instances[name]
        else:
            analyzer_instances_lock.promote()  # Write locked.
            analyzer = CircuitAnalyzer(circuit.Circuit(name), plot=plot)
            analyzer_instances[name] = analyzer
    return analyzer

예제 #6
0
 def __init__(self):
   self.lock = util.RWLock()
   self.users = {}
   self.usernames = set()
예제 #7
0
 def __init__(self):
     self.lock = util.RWLock()
     self.ongoing_games = {}