equal
deleted
inserted
replaced
177 override def interrupt: Unit = handler(thread) |
177 override def interrupt: Unit = handler(thread) |
178 |
178 |
179 def interrupt_handler[A](new_handler: Isabelle_Thread.Interrupt_Handler)(body: => A): A = |
179 def interrupt_handler[A](new_handler: Isabelle_Thread.Interrupt_Handler)(body: => A): A = |
180 if (new_handler == null) body |
180 if (new_handler == null) body |
181 else { |
181 else { |
182 require(is_self) |
182 require(is_self, "interrupt handler on other thread") |
183 |
183 |
184 val old_handler = handler |
184 val old_handler = handler |
185 handler = new_handler |
185 handler = new_handler |
186 try { |
186 try { |
187 if (clear_interrupt) interrupt |
187 if (clear_interrupt) interrupt |