In reply to NiLu:
It is limited to the sequence ports. This goes back to the OVM. Instead of fixing the TLM ports, the people on the OVM committee just added a whole new set of put and get ports that were completely independent of the existing TLM ports.
Analysis ports do not have the same issue because they are just implementing write() function calls that can never block. It’s when the write is used together with a tlm fifo extended to make an analysis_fifo that you get the non-determinism.