Enable sub-ktests by default once ktests enabled
[akaros.git] / kern / src / event.c
index 314c706..6a52780 100644 (file)
@@ -251,7 +251,7 @@ ultimate_fallback:
         * empty and the process is simply WAITING (yielded all of its vcores and is
         * waiting on an event).  Time for the ultimate fallback: locking.  Note
         * that when we __alert_vcore(), there is a chance we need to mmap, which
-        * grabs the mm_lock. */
+        * grabs the vmr_lock and pte_lock. */
        spin_lock(&p->proc_lock);
        if (p->state != PROC_WAITING) {
                /* We need to check the online and bulk_preempt lists again, now that we are
@@ -342,7 +342,10 @@ void send_event(struct proc *p, struct event_queue *ev_q, struct event_msg *msg,
 {
        struct proc *old_proc;
        struct event_mbox *ev_mbox = 0;
+       assert(!in_irq_ctx(&per_cpu_info[core_id()]));
        assert(p);
+       if (p->state == PROC_DYING)
+               return;
        printd("[kernel] sending msg to proc %p, ev_q %p\n", p, ev_q);
        if (!ev_q) {
                warn("[kernel] Null ev_q - kernel code should check before sending!");