namespace mozilla { namespace _ipdltest { intr protocol PTestHangs { both: intr StackFrame(); parent: async Nonce(); child: async Start(); intr Hang(); async __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