summaryrefslogtreecommitdiffstats
path: root/ipc/ipdl/test/cxx/PTestHangs.ipdl
blob: b1b43fa754a709cba25d6a1a4aff969234e79285 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40

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