gecko-dev/ipc/ipdl/test/cxx/PTestHangs.ipdl

41 lines
692 B
Plaintext

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