From ee1ec3ceda1d54f1f5d383382d10ad53fe47f230 Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Mon, 11 Jun 2012 12:32:18 -0400 Subject: [PATCH] Don't crash if a process yields and gets killed before it is next scheduled --- os2.rkt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/os2.rkt b/os2.rkt index 3296bf4..de9d885 100644 --- a/os2.rkt +++ b/os2.rkt @@ -287,7 +287,11 @@ (let-values (((transformed-preaction state) (transform-meta-action pid preaction state))) (loop rest state (cons transformed-preaction outbound-actions)))] [(yield k) - (loop rest (run-ready state pid k) outbound-actions)] + (loop rest + (if (hash-has-key? (vm-processes state) pid) + (run-ready state pid k) + state) + outbound-actions)] [preaction (let-values (((new-outbound-actions-rev state) (perform-action pid preaction state))) (loop rest state (append new-outbound-actions-rev outbound-actions)))])])))