title: Linux Signals and Interrupt handler
body: <p>Reading about interrupts in linux, I understand that their handlers will run till completion (lets not consider the bottom halves here). So, assume that my code has <code>SIGINT</code> handler registered (using the <code>signal()/sigaction()</code> call) with a <code>while(1)</code>-loop in it (i.e the handler never returns).</p>
  
  <p>If I quit my program abruptly while running, then shouldn't this scenario freeze my machine entirely? Won't my machine with only one CPU core go into an infinite loop?</p>
  
  <p>What I mean is; since my interrupt handler is not returning, won't the CPU be stuck in executing the while(1) code only? (i.e no other process will get the chance of running, because there won't be any context-switch/preemption inside the handler or can the interrupt handler get preempted in between running the while(1) loop?)</p>