xiaoxiang781216 commented on code in PR #15345: URL: https://github.com/apache/nuttx/pull/15345#discussion_r1900157910
########## arch/z80/src/z80/z80_sigdeliver.c: ########## @@ -99,7 +100,7 @@ void z80_sigdeliver(void) regs[XCPT_PC] = rtcb->xcp.saved_pc; regs[XCPT_I] = rtcb->xcp.saved_i; Review Comment: ```suggestion regs[XCPT_I] = rtcb->xcp.saved_i; ``` ########## include/nuttx/sched.h: ########## @@ -134,6 +134,7 @@ #define TCB_FLAG_FORCED_CANCEL (1 << 13) /* Bit 13: Pthread cancel is forced */ #define TCB_FLAG_JOIN_COMPLETED (1 << 14) /* Bit 14: Pthread join completed */ #define TCB_FLAG_FREE_TCB (1 << 15) /* Bit 15: Free tcb after exit */ +#define TCB_FLAG_SIGDELIVER (1 << 16) /* Bit 16: Deliver pending signals */ Review Comment: ```suggestion #define TCB_FLAG_SIGDELIVER (1 << 2) /* Bit 2: Deliver pending signals */ ``` move before line 120 ########## arch/z80/src/ez80/ez80_sigdeliver.c: ########## @@ -102,7 +103,7 @@ void z80_sigdeliver(void) regs[XCPT_PC] = rtcb->xcp.saved_pc; Review Comment: ```suggestion regs[XCPT_PC] = rtcb->xcp.saved_pc; ``` ########## arch/avr/src/avr32/avr_sigdeliver.c: ########## @@ -104,7 +105,7 @@ void avr_sigdeliver(void) regs[REG_PC] = rtcb->xcp.saved_pc; regs[REG_SR] = rtcb->xcp.saved_sr; Review Comment: ```suggestion regs[REG_SR] = rtcb->xcp.saved_sr; ``` ########## arch/z80/src/z80/z80_sigdeliver.c: ########## @@ -99,7 +100,7 @@ void z80_sigdeliver(void) regs[XCPT_PC] = rtcb->xcp.saved_pc; Review Comment: ditto ########## arch/misoc/src/minerva/minerva_sigdeliver.c: ########## @@ -78,8 +78,8 @@ void minerva_sigdeliver(void) * more signal deliveries while processing the current pending signals. */ - sigdeliver = rtcb->sigdeliver; - rtcb->sigdeliver = NULL; + sigdeliver = nxsig_deliver; Review Comment: remove sigdeliver, call nxsig_deliver directly ########## arch/z80/src/z180/z180_sigdeliver.c: ########## @@ -99,7 +100,7 @@ void z80_sigdeliver(void) regs[XCPT_PC] = rtcb->xcp.saved_pc; regs[XCPT_I] = rtcb->xcp.saved_i; Review Comment: ```suggestion regs[XCPT_I] = rtcb->xcp.saved_i; ``` ########## arch/avr/src/avr/avr_sigdeliver.c: ########## @@ -104,7 +105,7 @@ void avr_sigdeliver(void) regs[REG_PC2] = rtcb->xcp.saved_pc2; #endif regs[REG_SREG] = rtcb->xcp.saved_sreg; Review Comment: ```suggestion regs[REG_SREG] = rtcb->xcp.saved_sreg; ``` and other lines ########## arch/ceva/src/common/ceva_sigdeliver.c: ########## @@ -63,17 +63,17 @@ void ceva_sigdeliver(void) int saved_errno = rtcb->pterrno; - sinfo("rtcb=%p sigdeliver=%p sigpendactionq.head=%p\n", - rtcb, rtcb->sigdeliver, rtcb->sigpendactionq.head); - DEBUGASSERT(rtcb->sigdeliver != NULL); + sinfo("rtcb=%p sigpendactionq.head=%p\n", + rtcb, rtcb->sigpendactionq.head); + DEBUGASSERT((rtcb->flags & TCB_FLAG_SIGDELIVER) != 0); /* Get a local copy of the sigdeliver function pointer. We do this so that * we can nullify the sigdeliver function pointer in the TCB and accept * more signal deliveries while processing the current pending signals. */ - sigdeliver = rtcb->sigdeliver; - rtcb->sigdeliver = NULL; + sigdeliver = nxsig_deliver; Review Comment: remove sigdeliver -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@nuttx.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org