@mateiz , in the implementation staying in master, the structure is like 

```
if (!processEvent(event)) {
   submitWaitingStages()
}
```

and except StopDAGScheduler event, all the others return false in processEvent(), so submitWaitingStages is called after DAGScheduler processed each message