Threads being killed abruptly

Hi,
I was trying to modify an existing 22 Ethernet code to 12 code. And, now when I have successfully managed to compile it the simulator hangs and says the threads have been killed or suspended. I do not understand which part of my code is blocking the execution of my TB component threads. Could you please suggest to me what am I going wrong?

Link to EDA playground:Ethernet_1*2

In reply to sai_pra99:

Your environment is never finishing. The monitor has a forever loop which never exits, so the fork/join block in the environment run() task will never finish.

In reply to cgales:

Okay got it, that resolves my simulation hang problems. But what about the threads being killed and the scoreboard and other components not being executed. What is blocking them?

In reply to sai_pra99:

You need to fix the run() task in your environment. If the component is never expected to finish, such as the driver/monitor/scoreboard, you want to call the component’s run() task from a fork/join_none block. If you are expecting the component to finish, you will call it from a fork/join block. If there is only one task call inside a fork/join block, don’t use fork/join.

In reply to cgales:

Sorry, but it didn’t help either.