AnsweredAssumed Answered

accessing g_ThreadTemplates from VDK.cpp

Question asked by gpetrowitsch on Feb 25, 2011
Latest reply on Mar 7, 2011 by SFernandez

Hi all,

 

I'm currently trying to write a shutdown function for my system.

One task is to kill all threads. This seems to be easy, but one

must be careful. If you kill message enabled threads before

killing the threads that send messages, you might run into a

kernel panic because of message pool overrun.

 

I thought I could check, wether a thread is message enabled,

by accessing the messageAllowed member of it's entry in

the g_ThreadTemplates array defined in VDK.cpp

 

But how can I do it.

If I write

 

extern VDK::ThreadTemplate VDK::g_ThreadTemplates[];
 :
if (VDK::g_ThreadTemplates[i].messageAllowed ...)

 

in my code the compiler tells me, that VDK namespace has no

member g_ThreadTemplates.

 

If I write

 

using namespace VDK;
extern VDK::ThreadTemplate g_ThreadTemplates[];
  :
if (g_ThreadTemplates[i].messageAllowed ...)

 

the compiler doesn't complain, but the linker does:

 

2>[Error li1021] The following symbols referenced in processor 'p0' could not be resolved:

2> 'g_ThreadTemplates [_g_ThreadTemplates]' referenced from 'PoffServer.doj'

 

If I look at the XRef.xml generated from a previous successful compile, I

see the symbol _g_ThreadTemplates__3VDK, so actually the namespace

VDK has the member g_ThreadTemplates.

 

Can anyone tell me, how I can access this array?

 

Thanks & kind regards,

Gerhard

Outcomes