<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 async def start(self):
 """Start the websocket server. When this method returns, the websocket server will be running and the port property of this class will have its assigned port number. This method should be called only once in the lifetime of the server and must be paired with a call to stop() to cleanly release the server's resources. """


        if self._server_task is not None:
            self._logger.debug("AsyncValidatingWSServer.start() called twice, ignoring")
            return

        started_signal = self._loop.create_future()
        self._server_task = self._loop.add_task(self._run_server_task(started_signal))

        await started_signal

        if self.port is None:
            self.port = started_signal.result()