<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body class='hmmessage'>Target.Global_handler_stack is FALSE for targets that ever use kernel threads.<BR>Target.Global_handler_stack is TRUE for targets that never use kernel threads.<BR>
Targets that can go either way set it to FALSE.<BR>
<BR>
<BR>When Global_handler_stack is TRUE, inline code is generated to,<BR> I guess, manipulate a per-thread linked list of stack frames.<BR>
<BR> <BR>
When Global_handler_stack is FALSE, function calls are generated<BR> to do same.<BR>
<BR> <BR>
That is, Global_handler_stack is TRUE is a little more efficient.<BR>
<BR> <BR>
Given that Global_handler_stack is TRUE for all "recent", "active", "interesting"<BR> targets, with the presumably temporary exception of PPC_LINUX, how about<BR> we remove Global_handler_stack as a variable and just act as if it is always FALSE?<BR>
<BR>
<BR>(I have some suspicion that this linked list is absent on targets <BR>with a stack walker, so it'd make no difference on them. I'll check later..<BR>NT386 ought use fs:0 but it doesn't.)<BR>
<BR>
<BR>I figure target-specificity should be minimized.<BR>
Make it easier to bring up new targets -- not that the code isn't pretty<BR>
well commented and easy to understand, so it's really no easier without this.<BR>
<BR>
<BR>The counterpoints would be:<BR> Even if it is target-specific, it does work and isn't complicated, so leave it alone.<BR> If those old targets are alive, and lack pthreads, it is <EM>slightly </EM>faster this way.<BR> If people want current/new targets to have a "faster" single threaded mode, this <BR> could be part of that. Note though that single threaded apps can't/don't exist,<BR>
unless maybe if you never heap allocate, since the heap allocator/garbage collector<BR>
creates a thread at initialization (shouldn't it wait for a heap allocation? Maybe.<BR>
If there really is a chance it won't occur or won't occur for a while).<BR>
<BR>
<BR> - Jay<BR></body>
</html>