<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, peer_table=None):
 """ Loop forever, pinging someone every pass. """

        self.running = True
        while self.running:
            local_inv = atlas_get_zonefile_inventory()
            t1 = time_now()
            self.step( peer_table=peer_table, local_inv=local_inv, path=self.atlasdb_path )
            t2 = time_now()

            # don't go too fast 
            if t2 - t1 < PEER_HEALTH_NEIGHBOR_WORK_INTERVAL:
                deadline = time_now() + PEER_HEALTH_NEIGHBOR_WORK_INTERVAL - (t2 - t1)
                while time_now() < deadline and self.running:
                    time_sleep( self.hostport, self.__class__.__name__, 1.0 )

                if not self.running:
                    break