michael@0: namespace mozilla { michael@0: namespace _ipdltest { michael@0: michael@0: intr protocol PTestInterruptShutdownRace { michael@0: parent: michael@0: sync StartDeath(); michael@0: async Orphan(); michael@0: michael@0: child: michael@0: async Start(); michael@0: intr Exit(); michael@0: async __delete__(); michael@0: michael@0: state START: michael@0: send Start goto START_DEATH; michael@0: michael@0: state START_DEATH: michael@0: recv StartDeath goto EXITING; michael@0: michael@0: state EXITING: michael@0: recv Orphan goto QUITTING1; michael@0: call Exit goto QUITTING2; michael@0: michael@0: state QUITTING1: michael@0: call Exit goto DEAD; michael@0: state QUITTING2: michael@0: recv Orphan goto DEAD; michael@0: michael@0: state DEAD: michael@0: send __delete__; michael@0: }; michael@0: michael@0: } // namespace _ipdltest michael@0: } // namespace mozilla