Make sure to quit execution on signal
diff --git a/src/bc/program.c b/src/bc/program.c
index e8138c8..9ae27a5 100644
--- a/src/bc/program.c
+++ b/src/bc/program.c
@@ -1642,7 +1642,7 @@
   code = func->code.array;
   cond = false;
 
-  while (ip->idx < func->code.len) {
+  while (!bcg.bc_signal && ip->idx < func->code.len) {
 
     uint8_t inst;