Most standard 8052 platforms allow the user to configure interrupts to be of two possible priorities: higher, during which any pending interrupt must wait, and lower, which can be interrupted by the higher level interrupts, but lower level interrupts can wait.
Now, if you have a job to be done within the interrupt that takes some time, isn't absolutely time-critical, and can be interrupted by other interrupts, the usual approach is to drop whatever data the interrupt collected into a buffer, set a flag that there is the handling of a job pending, and then let the main loop reach a check for the flag, and perform that job.
There is, however, a trick that allows to save some time and have the job executed directly from the interrupt vector, but at main loop priority - interruptible by both interrupt levels, essentially creating a third interrupt level, below the two existing levels.
How does one achieve this?