How does the actual blocking put/get happens inside the mailbox or the uvm blocking ports etc?

@Chandra & @Chris:

Thanks guys for your inputs. Hmm makesense, so all the blocking ports in the uvm port libraries just have a size of 1 to store just one element and except the uvm_tlm_fifo which can have variable limit.

B/w… How does the normal fifo takes care of the push_back and pop_front process ?
a. Do they internally have the wr_pointer and rd_pointer concepts ? accordingly they manipulate the data’s ? or any other functionality is used ?

Share in your comments !! Thanks !!