code: def _get_task_id(source):
      
      if type(source) is ray.actor.ActorHandle:
          return source._ray_actor_id
      else:
          if type(source) is ray.TaskID:
              return source
          else:
              return ray._raylet.compute_task_id(source)
docs: Return the task id associated to the generic source of the signal.
  
      Args:
          source: source of the signal, it can be either an object id returned
              by a task, a task id, or an actor handle.
  
      Returns:
          - If source is an object id, return id of task which creted object.
          - If source is an actor handle, return id of actor's task creator.
          - If source is a task id, return same task id.