import grpc
import math_pb2_grpc, math_pb2
from concurrent import futures

class Calculator(math_pb2_grpc.CalcServicer):
    def Mult(self, request, context):
        print("in mult")
        result = request.x * request.y
        return math_pb2.MultResp(result=result)

    def MultMany(self, request, context):
        print("in MultMany")
        result = 1
        for num in request.nums:
            result *= num
        return math_pb2.MultResp(result=result)

print("start server")
server = grpc.server(futures.ThreadPoolExecutor(max_workers=1), options=[("grpc.so_reuseport", 0)])

math_pb2_grpc.add_CalcServicer_to_server(Calculator(), server)

server.add_insecure_port("0.0.0.0:5440")
server.start()
server.wait_for_termination()