Skip to content

Commit 7050a6a

Browse files
committed
fix bug for windows python
1 parent afa682a commit 7050a6a

File tree

1 file changed

+19
-13
lines changed

1 file changed

+19
-13
lines changed

server.py

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,6 @@
1111

1212
logging.basicConfig(level=logging.DEBUG)
1313

14-
manager = Manager()
15-
shared_lock = Lock() # Create a Lock for synchronization
16-
shared_number_of_connections = manager.Value('i', 0)
1714

1815
class GrpcAgent:
1916
def __init__(self, agent_type, uniform_number) -> None:
@@ -77,8 +74,10 @@ def GetTrainerActions(self, state: pb2.State):
7774
return pb2.TrainerActions(actions=actions)
7875

7976
class GameHandler(pb2_grpc.GameServicer):
80-
def __init__(self):
77+
def __init__(self, shared_lock, shared_number_of_connections) -> None:
8178
self.agents: dict[int, GrpcAgent] = {}
79+
self.shared_lock = shared_lock
80+
self.shared_number_of_connections = shared_number_of_connections
8281

8382
def GetPlayerActions(self, state: pb2.State, context):
8483
logging.debug(f"GetPlayerActions unum {state.register_response.uniform_number} at {state.world_model.cycle}")
@@ -124,14 +123,14 @@ def Register(self, register_request: pb2.RegisterRequest, context):
124123
logging.debug(f"received register request from team_name: {register_request.team_name} "
125124
f"unum: {register_request.uniform_number} "
126125
f"agent_type: {register_request.agent_type}")
127-
with shared_lock:
128-
shared_number_of_connections.value += 1
129-
logging.debug(f"Number of connections {shared_number_of_connections.value}")
126+
with self.shared_lock:
127+
self.shared_number_of_connections.value += 1
128+
logging.debug(f"Number of connections {self.shared_number_of_connections.value}")
130129
team_name = register_request.team_name
131130
uniform_number = register_request.uniform_number
132131
agent_type = register_request.agent_type
133-
self.agents[shared_number_of_connections.value] = GrpcAgent(agent_type, uniform_number)
134-
res = pb2.RegisterResponse(client_id=shared_number_of_connections.value,
132+
self.agents[self.shared_number_of_connections.value] = GrpcAgent(agent_type, uniform_number)
133+
res = pb2.RegisterResponse(client_id=self.shared_number_of_connections.value,
135134
team_name=team_name,
136135
uniform_number=uniform_number,
137136
agent_type=agent_type)
@@ -145,9 +144,9 @@ def SendByeCommand(self, register_response: pb2.RegisterResponse, context):
145144
res = pb2.Empty()
146145
return res
147146

148-
def serve(port):
147+
def serve(port, shared_lock, shared_number_of_connections):
149148
server = grpc.server(futures.ThreadPoolExecutor(max_workers=22))
150-
game_service = GameHandler()
149+
game_service = GameHandler(shared_lock, shared_number_of_connections)
151150
pb2_grpc.add_GameServicer_to_server(game_service, server)
152151
server.add_insecure_port(f'[::]:{port}')
153152
server.start()
@@ -156,8 +155,15 @@ def serve(port):
156155
server.wait_for_termination()
157156

158157

159-
if __name__ == '__main__':
158+
def main():
159+
manager = Manager()
160+
shared_lock = Lock() # Create a Lock for synchronization
161+
shared_number_of_connections = manager.Value('i', 0)
160162
parser = argparse.ArgumentParser(description='Run play maker server')
161163
parser.add_argument('-p', '--rpc-port', required=False, help='The port of the server', default=50051)
162164
args = parser.parse_args()
163-
serve(args.rpc_port)
165+
serve(args.rpc_port, shared_lock, shared_number_of_connections)
166+
167+
if __name__ == '__main__':
168+
main()
169+

0 commit comments

Comments
 (0)