Relationship between sequence priority and sequence_item priority

Hi
I understand that a sequence can be started on a sequencer with a specified priority:


virtual task start (
   uvm_sequencer_base sequencer,
   uvm_sequence_base parent_sequence = null,
   int this_priority = -1,
   bit call_pre_post = 1
)

On the other hand, a sequence_item can be sent to a driver with a specified priority:


virtual task start_item (
   uvm_sequence_item item,
   int set_priority = -1,
   uvm_sequencer_base sequencer = null
)

Now I’m a little confused about the relationship between these two sorts of priority. My guess is that when start_item() is called, if the set_priority argument is not specified, then the sequence_item will get the priority that was previously assigned to the sequence when it was started on a sequencer (the this_priority argument). I’m not sure if my understanding is correct. Maybe the relationship is not like this, or maybe these two priorities are totally unrelated! I would really appreciate some help here.
Thanks

In reply to Farhad:

You can get answers easily by looking at the UVM source code for these routines. uvm_sequence gets extended from uvm_sequence_item and there is only one priority. If you don’t specify an explicit priority, it uses the priority of the sequence that calls start() or start_item().