OpenInx
2018-11-28 14:42:36 UTC
Hi :
I read parts of the procedure v2 framework, and found that if a procedure
has 3 added child procedure,
then it's children will be schedued in the reversed order.
Let me give an example. if a procedure A added 3 child procedure: B, C ,
D.
a.addChildProcedure(B, C, D)
The procedure framework will add the B,C,D child produre in a dequeue to
schedule
( Code Path --- ProcedureExecutor#execProcedure
-- submitChildrenProcedures -- dequeue#addFront )
So the dequeue will be : (front) D, C, B (back)
Then we will poll each procedure from the dequeue, and dispatch to the
executor to run ..
In the final, the procedure executing order will be : D, C, B, which is
the revered order compared to the addChildProcedure order.
My question is : is it designed intentionally ? Or unintentionally doing
the wrong implementation ?
Seems most the child procedure are region assign or unassign, looks like no
problem now..
Please correct me if I am wrong or missing something.
Thanks.
I read parts of the procedure v2 framework, and found that if a procedure
has 3 added child procedure,
then it's children will be schedued in the reversed order.
Let me give an example. if a procedure A added 3 child procedure: B, C ,
D.
a.addChildProcedure(B, C, D)
The procedure framework will add the B,C,D child produre in a dequeue to
schedule
( Code Path --- ProcedureExecutor#execProcedure
-- submitChildrenProcedures -- dequeue#addFront )
So the dequeue will be : (front) D, C, B (back)
Then we will poll each procedure from the dequeue, and dispatch to the
executor to run ..
In the final, the procedure executing order will be : D, C, B, which is
the revered order compared to the addChildProcedure order.
My question is : is it designed intentionally ? Or unintentionally doing
the wrong implementation ?
Seems most the child procedure are region assign or unassign, looks like no
problem now..
Please correct me if I am wrong or missing something.
Thanks.