michael@0: namespace mozilla { michael@0: namespace _ipdltest { michael@0: michael@0: intr protocol PTestRacyInterruptReplies { michael@0: child: michael@0: intr R_() returns (int replyNum); michael@0: async _A(); michael@0: async ChildTest(); michael@0: async __delete__(); michael@0: michael@0: parent: michael@0: intr _R() returns (int replyNum); michael@0: async A_(); michael@0: michael@0: state PARENT_START: michael@0: call R_ goto PARENT_S1; michael@0: michael@0: state PARENT_S1: michael@0: recv A_ goto PARENT_S2; michael@0: michael@0: state PARENT_S2: michael@0: call R_ goto CHILD_TEST; michael@0: michael@0: state CHILD_TEST: michael@0: send ChildTest goto CHILD_START; michael@0: michael@0: state CHILD_START: michael@0: answer _R goto CHILD_S1; michael@0: michael@0: state CHILD_S1: michael@0: send _A goto CHILD_S2; michael@0: michael@0: state CHILD_S2: michael@0: answer _R goto DYING; michael@0: michael@0: state DYING: michael@0: send __delete__; michael@0: }; michael@0: michael@0: } // namespace _ipdltest michael@0: } // namespace mozilla