Why uvm_task_phase::execute() is defined as a function?

In reply to eda2k4:

It forks a process. Is it supposed to be a task?

Why should this be a task? It does not consume time itself, but it is starting the exec_task.