Ensure a lock is taken before bc_vec_free()

Signed-off-by: Gavin Howard <gavin@yzena.com>
diff --git a/src/vm.c b/src/vm.c
index a5a77a5..d9404e2 100644
--- a/src/vm.c
+++ b/src/vm.c
@@ -421,9 +421,12 @@
 void bc_vm_freeTemps(void) {
 
 	size_t i;
+	sig_atomic_t lock;
 
 	if (!vm.temps.cap) return;
 
+	BC_SIG_TRYLOCK(lock);
+
 	for (i = 0; i < vm.temps.len; ++i) {
 		free(((BcNum*) bc_vec_item(&vm.temps, i))->num);
 	}
@@ -431,6 +434,8 @@
 	bc_vec_free(&vm.temps);
 	vm.temps.cap = 0;
 	vm.temps.len = 0;
+
+	BC_SIG_TRYUNLOCK(lock);
 }
 
 inline size_t bc_vm_arraySize(size_t n, size_t size) {