Messages in this thread | | | Date | Fri, 22 Jun 2001 11:05:07 -0700 (PDT) | From | Davide Libenzi <> | Subject | signal dequeue ... |
| |
I'm just trying to figure out the reason why signal must be delivered one at a time instead of building a frame with multiple calls with only the last one chaining back to the kernel. All previous calls instead of calling the stub that jump back to the kernel will call a small stub like ( Ix86 ) :
stkclean_stub: add $frame_size, %esp cmp %esp, $end_stubs jae $sigreturn_stub ret sigreturn_stub: mov __NR_sigreturn, %eax int $0x80 end_stubs:
... | context1 * $stkclean_stub * sigh1_eip | context0 * $stkclean_stub * sigh0_eip
When sigh0 return, it'll call stkclean_stub that will clean context0 and if we're at the end it'll call the jump-back-to-kernel stub, otherwise the it'll execute the ret the will call sigh1 handler ... and so on.
- Davide
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |