code: def _save_and_log_checkpoint(self, actor):
          
          actor_id = self._worker.actor_id
          checkpoint_info = self._worker.actor_checkpoint_info[actor_id]
          checkpoint_info.num_tasks_since_last_checkpoint += 1
          now = int(1000 * time.time())
          checkpoint_context = ray.actor.CheckpointContext(
              actor_id, checkpoint_info.num_tasks_since_last_checkpoint,
              now - checkpoint_info.last_checkpoint_timestamp)
          # If we should take a checkpoint, notify raylet to prepare a checkpoint
          # and then call `save_checkpoint`.
          if actor.should_checkpoint(checkpoint_context):
              try:
                  now = int(1000 * time.time())
                  checkpoint_id = (self._worker.raylet_client.
                                   prepare_actor_checkpoint(actor_id))
                  checkpoint_info.checkpoint_ids.append(checkpoint_id)
                  actor.save_checkpoint(actor_id, checkpoint_id)
                  if (len(checkpoint_info.checkpoint_ids) >
                          ray._config.num_actor_checkpoints_to_keep()):
                      actor.checkpoint_expired(
                          actor_id,
                          checkpoint_info.checkpoint_ids.pop(0),
                      )
                  checkpoint_info.num_tasks_since_last_checkpoint = 0
                  checkpoint_info.last_checkpoint_timestamp = now
              except Exception:
                  # Checkpoint save or reload failed. Notify the driver.
                  traceback_str = ray.utils.format_error_message(
                      traceback.format_exc())
                  ray.utils.push_error_to_driver(
                      self._worker,
                      ray_constants.CHECKPOINT_PUSH_ERROR,
                      traceback_str,
                      driver_id=self._worker.task_driver_id)
docs: Save an actor checkpoint if necessary and log any errors.
  
          Args:
              actor: The actor to checkpoint.
  
          Returns:
              The result of the actor's user-defined `save_checkpoint` method.