[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Update README patch for ipc.cc
From: |
Giuseppe Scrivano |
Subject: |
Re: Update README patch for ipc.cc |
Date: |
Sat, 06 Aug 2005 15:29:32 +0200 |
User-agent: |
Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux) |
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());