|
1 |
|
2 namespace mozilla { |
|
3 namespace _ipdltest { |
|
4 |
|
5 intr protocol PTestHangs { |
|
6 both: |
|
7 intr StackFrame(); |
|
8 |
|
9 parent: |
|
10 async Nonce(); |
|
11 |
|
12 child: |
|
13 async Start(); |
|
14 intr Hang(); |
|
15 __delete__(); |
|
16 |
|
17 |
|
18 state START: |
|
19 send Start goto RACE; |
|
20 |
|
21 state RACE: |
|
22 recv Nonce goto RACE1; |
|
23 call StackFrame goto RACE2; |
|
24 state RACE1: |
|
25 call StackFrame goto FRAME2; |
|
26 state RACE2: |
|
27 recv Nonce goto FRAME2; |
|
28 |
|
29 // So as to test unwinding the RPC stack |
|
30 state FRAME2: answer StackFrame goto FRAME3; |
|
31 state FRAME3: call StackFrame goto FRAME4; |
|
32 state FRAME4: answer StackFrame goto HANG; |
|
33 state HANG: call Hang goto DEATH; |
|
34 |
|
35 state DEATH: |
|
36 send __delete__; |
|
37 }; |
|
38 |
|
39 } // namespace _ipdltest |
|
40 } // namespace mozilla |