summaryrefslogtreecommitdiffstats
path: root/ipc/ipdl/test/cxx/PTestShutdown.ipdl
blob: e4d8d0dbebee50cf98c72865ac295f00c63d1f74 (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
include protocol PTestShutdownSub;

namespace mozilla {
namespace _ipdltest {

intr protocol PTestShutdown {
    manages PTestShutdownSub;

child:
    async Start();

parent:
    // NB: we test deletion and crashing only, not shutdown, because
    // crashing is the same code path as shutdown, and other IPDL unit
    // tests check shutdown semantics
    async PTestShutdownSub(bool expectCrash);

    // Used to synchronize between parent and child, to avoid races
    // around flushing socket write queues
    sync Sync();

    async __delete__();


state START:
    send Start goto TESTING;

state TESTING:
    recv PTestShutdownSub goto TESTING;
    recv Sync goto DYING;

state DYING:
    recv __delete__;
};

} // namespace _ipdltest
} // namespace mozilla