gecko/ipc/ipdl/test/cxx/PTestHangs.ipdl
2010-03-11 01:35:28 -06:00

41 lines
683 B
Plaintext

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