kernel/eka/kernel/sipc.cpp
branchRCL_3
changeset 39 2bb754abd467
parent 8 538db54a451d
child 43 c1f20ce4abcf
equal deleted inserted replaced
36:bbf8bed59bcb 39:2bb754abd467
  1142 		DThread* t = m->iClient;
  1142 		DThread* t = m->iClient;
  1143 		TUint32 c = --t->iIpcCount;
  1143 		TUint32 c = --t->iIpcCount;
  1144 
  1144 
  1145 		if(m->IsDelivered() || m->IsAccepted())
  1145 		if(m->IsDelivered() || m->IsAccepted())
  1146 			{
  1146 			{
  1147 			if (!IsClosing())
  1147 			if (!IsClosing() && t->iMState != DThread::EDead)
  1148 				{
  1148 				{
  1149 				m->SetCompleting();
  1149 				m->SetCompleting();
  1150 				Kern::QueueRequestComplete(t, m, aReason);
  1150 				Kern::QueueRequestComplete(t, m, aReason);
  1151 				}
  1151 				}
  1152 			else
  1152 			else
  1748 	// Note whether session connect message has completed
  1748 	// Note whether session connect message has completed
  1749 	if (m.iFunction == RMessage2::EConnect)
  1749 	if (m.iFunction == RMessage2::EConnect)
  1750 		s->iConnectMsgPtr = NULL;
  1750 		s->iConnectMsgPtr = NULL;
  1751 
  1751 
  1752 	__KTRACE_OPT(KIPC,Kern::Printf("MsgCo: M:%d r:%d %O->%O", m.iFunction, aReason, TheCurrentThread, m.iClient));
  1752 	__KTRACE_OPT(KIPC,Kern::Printf("MsgCo: M:%d r:%d %O->%O", m.iFunction, aReason, TheCurrentThread, m.iClient));
  1753 	if (!s->IsClosing())
  1753 	if (!s->IsClosing() && m.iClient->iMState != DThread::EDead)
  1754 		{
  1754 		{
  1755 		m.SetCompleting();
  1755 		m.SetCompleting();
  1756 		Kern::QueueRequestComplete(m.iClient, &m, aReason);
  1756 		Kern::QueueRequestComplete(m.iClient, &m, aReason);
  1757 		}
  1757 		}
  1758 	else
  1758 	else