diff -r 000000000000 -r 6474c204b198 ipc/ipdl/test/cxx/PTestHangs.ipdl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ipc/ipdl/test/cxx/PTestHangs.ipdl Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,40 @@ + +namespace mozilla { +namespace _ipdltest { + +intr protocol PTestHangs { +both: + intr StackFrame(); + +parent: + async Nonce(); + +child: + async Start(); + intr Hang(); + __delete__(); + + +state START: + send Start goto RACE; + +state RACE: + recv Nonce goto RACE1; + call StackFrame goto RACE2; +state RACE1: + call StackFrame goto FRAME2; +state RACE2: + recv Nonce goto FRAME2; + +// So as to test unwinding the RPC stack +state FRAME2: answer StackFrame goto FRAME3; +state FRAME3: call StackFrame goto FRAME4; +state FRAME4: answer StackFrame goto HANG; +state HANG: call Hang goto DEATH; + +state DEATH: + send __delete__; +}; + +} // namespace _ipdltest +} // namespace mozilla