I'm currently looking a bit into the bearer-layer internals of the nRF SDK for Mesh and noticed that there is a heap of instances where data needs to be transferred between RADIO IRQ context and any other priority level. Whenever this is done, interrupts get globally disabled using the mesh-internal _DISABLE_IRQS-macro. Of course this is required to prevent access issues to shared resources, which will be used in RADIO IRQ context.
Whenever someone in the dev zone needed to disable interrupts, it was suggested to use APP_CRITICAL_REGION_ENTER, as for example in this question here. This would of course not be applicable to the Mesh-stack, because it needs to exactly lock these interrupts that a "regular application" should not touch.
Why can the mesh-stack lock interrupts globally, seemingly without issue?
Without having it tested extensively, it does not look as if the softdevice does assert from time to time, and I assume you would not want that anyway, so there must be some design limitations that you adhere to in the Mesh-stack that allow for it to not have any negative impact on the Softdevice. What are these?