<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _run(self):
 """Broadcasts forever. """

        self._is_running = True
        network_fail = False
        try:
            while self._do_run:
                try:
                    if network_fail is True:
                        LOGGER.info("Network connection re-established!")
                        network_fail = False
                    self._sender(self._message)
                except IOError as err:
                    if err.errno == errno.ENETUNREACH:
                        LOGGER.error("Network unreachable. "
                                     "Trying again in %d s.",
                                     self._interval)
                        network_fail = True
                    else:
                        raise
                time.sleep(self._interval)
        finally:
            self._is_running = False
            self._sender.close()