implement GS interrupt handler. TODO: we probably need to reset the FINISH event once the interrupt has been generated.