oops. I forgot a ). This should work better. Sorry for the flood.

Giuseppe

--- pistachio/kernel/src/api/v4/ipc.cc.old      2005-08-06 15:06:33.000000000 
+0200
+++ pistachio/kernel/src/api/v4/ipc.cc  2005-08-06 15:17:40.000000000 +0200
@@ -318,6 +318,9 @@
                 && (current->get_space() == virt_sender->get_space() ||
                     current->get_space() == to_tcb->get_space()))
            {
+    if (virt_sender->get_state().is_waiting() &&
+                   virt_sender->get_partner() == sender_id)
+                 virt_sender->set_partner(to_tid);
                sender_id = current->get_virtual_sender();
            }
            else
@@ -339,14 +342,14 @@
        if (EXPECT_FALSE(
            (!to_tcb->get_state().is_waiting())  ||
            (   // Not waiting for sender (may be virtual sender)?
-               to_tcb->get_partner() != sender_id &&
+    ( to_tcb->get_partner() != current->get_global_id() &&
                // Not open wait?
                !to_tcb->get_partner().is_anythread() &&
                // Not open local wait?
                !(to_tcb->get_partner().is_anylocalthread() && 
                  to_tcb->get_space() == current->get_space()) &&
                // Not waiting for actual sender (if propagating IPC)?
-               to_tcb->get_partner() != current->get_global_id()   )))
+               to_tcb->get_partner() != current->get_global_id()   ))))
        {
            TRACE_IPC ("dest not ready (%t, is_wt=%d)\n", 
                       to_tcb, to_tcb->get_state().is_waiting());


_______________________________________________
L4-hurd mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/l4-hurd

Reply via email to