on master help sign in
Simplyfy the terminate function sligthly
01e5bb8Jonas Claeson
rts/idris_rts.c+4−6
@@ -132,17 +132,15 @@ void init_signals(void) {
132Stats terminate(VM* vm) {
132Stats terminate(VM* vm) {
133 Stats stats = vm->stats;
133 Stats stats = vm->stats;
134 STATS_ENTER_EXIT(stats)
134 STATS_ENTER_EXIT(stats)
135−#ifdef HAS_PTHREAD
136− free(vm->inbox);
137−#endif
138 free(vm->valstack);
135 free(vm->valstack);
139 free_heap(&(vm->heap));
136 free_heap(&(vm->heap));
140 c_heap_destroy(&(vm->c_heap));
137 c_heap_destroy(&(vm->c_heap));
141#ifdef HAS_PTHREAD
138#ifdef HAS_PTHREAD
142− pthread_mutex_destroy(&(vm -> inbox_lock));
139+ pthread_mutex_destroy(&(vm->inbox_lock));
143− pthread_mutex_destroy(&(vm -> inbox_block));
140+ pthread_mutex_destroy(&(vm->inbox_block));
144 pthread_mutex_destroy(&(vm->alloc_lock));
141 pthread_mutex_destroy(&(vm->alloc_lock));
145− pthread_cond_destroy(&(vm -> inbox_waiting));
142+ pthread_cond_destroy(&(vm->inbox_waiting));
143+ free(vm->inbox);
146#endif
144#endif
147 // free(vm);
145 // free(vm);
148 // Set the VM as inactive, so that if any message gets sent to it
146 // Set the VM as inactive, so that if any message gets sent to it