def match_thread(data): global BUSY BUSY = True GAMES_RUN.append(data['id']) data['s3_bucket'] = bucket data['player_memory'] = 256 data['player_cpu'] = 20 data['map'] = cli.get_map(os.path.abspath(os.path.join('..', 'battlecode-maps', data['map']))) data['docker'] = True data['terminal_viewer'] = False data['use_viewer'] = False data['extra_delay'] = 0 (game, dockers, sock_file) = cli.create_scrimmage_game(data) winner = None match_file = None try: print("Running match " + str(data['id'])) winner, match_file = cli.run_game(game, dockers, data, sock_file,scrimmage=True) finally: cli.cleanup(dockers, data, sock_file) logs = None if all('logger' in player for player in game.players): logs = [player['logger'].logs.getvalue() for player in game.players] end_game(data,winner,match_file,logs)
def match_thread(data): global BUSY global DB_LOCK BUSY = True GAMES_RUN.append(data['id']) data['s3_bucket'] = bucket data['player_memory'] = int(os.environ['PLAYER_MEMORY']) data['player_cpu'] = 20 data['map_name'] = data['map'] data['map'] = cli.get_map( os.path.abspath(os.path.join('..', 'battlecode-maps', data['map']))) data['docker'] = True data['terminal_viewer'] = False data['use_viewer'] = False data['extra_delay'] = 0 try: (game, dockers, sock_file) = cli.create_scrimmage_game(data) except ValueError as e: print( "Destroying the game, as it is invalid. This should not happen.") while DB_LOCK == True: sleep(0.1) DB_LOCK = True cur.execute( "UPDATE " + os.environ["TABLE_NAME"] + " SET status='rejected' WHERE id=%s", (data['id'], )) pg.commit() DB_LOCK = False return PROXY_UPLOADER.game = game winner = None match_file = None try: print("Running match " + str(data['id'])) winner, match_file = cli.run_game(game, dockers, data, sock_file, scrimmage=True) finally: cli.cleanup(dockers, data, sock_file) PROXY_UPLOADER.game = None PROXY_UPLOADER.games_run += 1 logs = None if all('logger' in player for player in game.players): logs = [player['logger'].logs.getvalue() for player in game.players] end_game(data, winner, match_file, logs)