code: def wait_for_master_death(self):
          
          logger.info("Waiting for master death")
          timeout = 1.0
          self.last_master_ping = time.time()
  
          master_timeout = 300
          for arbiter_link in self.conf.arbiters:
              if not arbiter_link.spare:
                  master_timeout = \
                      arbiter_link.spare_check_interval * arbiter_link.spare_max_check_attempts
          logger.info("I'll wait master death for %d seconds", master_timeout)
  
          while not self.interrupted:
              # Make a pause and check if the system time changed
              _, tcdiff = self.make_a_pause(timeout)
              # If there was a system time change then we have to adapt last_master_ping:
              if tcdiff:
                  self.last_master_ping += tcdiff
  
              if self.new_conf:
                  self.setup_new_conf()
  
              sys.stdout.write(".")
              sys.stdout.flush()
  
              # Now check if master is dead or not
              now = time.time()
              if now - self.last_master_ping > master_timeout:
                  logger.info("Arbiter Master is dead. The arbiter %s takes the lead!",
                              self.link_to_myself.name)
                  for arbiter_link in self.conf.arbiters:
                      if not arbiter_link.spare:
                          arbiter_link.alive = False
                  self.must_run = True
                  break
docs: Wait for a master timeout and take the lead if necessary
  
          :return: None