So from my understanding, the functions execute in the process of the caller. and the event scheduler schedules events in order.
Now does the processing of these events and eventually the functions happen sequentially or does it allow for parallelism to take place here? is SV and the handling of these events inherently a single threaded process?
So for example if two UVM monitors were to call their TLM port functions during the same active region, are they then always handled in (uncertain but) sequential order? is it hardware / simulator dependent?
Or the second example for extra clarity if we have 2 events, and they both have some function that is being called in them at the same time, then it will execute 1 of the events at random first, and go through and executes the whole call stack of that function.. so multiple functions in a row.. and only when that is all done is when it executes the second event?