summaryrefslogtreecommitdiffstats
path: root/src/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/core')
-rw-r--r--src/core/process.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/core/process.c b/src/core/process.c
index c6660f227..4a705ef62 100644
--- a/src/core/process.c
+++ b/src/core/process.c
@@ -100,8 +100,12 @@ void step ( void ) {
ref_get ( process->refcnt ); /* Inhibit destruction mid-step */
desc = process->desc;
object = process_object ( process );
- list_del ( &process->list );
- list_add_tail ( &process->list, &run_queue );
+ if ( desc->reschedule ) {
+ list_del ( &process->list );
+ list_add_tail ( &process->list, &run_queue );
+ } else {
+ process_del ( process );
+ }
DBGC2 ( PROC_COL ( process ), "PROCESS " PROC_FMT
" executing\n", PROC_DBG ( process ) );
desc->step ( object );