Hello,

I have a little problem concerning RThreads.
I have two Threads A and B. I want to open the A's handle from B to communicate with it etc. But it dosent' work. Here a simplified snippet.


// THREAD A
RThread thrA; // created, up & running

// In A's thread-context I execute
TThreadId thrIdA = RThread().Id();
// printf thrIdA.Id() shows a valid thread Id



// THREAD B
RThread thrB; // created, up & running

// In B's thread-context I execute
TThreadId thrIdB = RThread().Id();
// printf thrIdB.Id() shows a valid thread Id

// An empty TThreadId, later filled by A's thread id.
TThreadId thrExternal;



// in THREAD A
// then, from A's thread-context, I pass A's threadId to thrB
thrExternal = thrIdA;
// thrExtrenal.Id() == thrIdA().Id()


// in THREAD B
// then, sometime later, I try to communicate with thread A from thread B

// theExternal.Id() == thrIdA().Id() <- so far so good

RThread thr;
int err = thr.Open( thrExternal );
// err == KErrNone


// then I wanted to see what's the Id of thr... and the value seems wrong (in any case thr.Id() != thrExternal.Id())

// so this here won't work as well
thr.RequestComplete( &iStatusOfThreadA, someCode );
// iStatusOfThreadA is the iStatus of an ActiveObject in thrA




Any ideas?

Thank you in advance.