Related articles |
---|
thread static chris@tkna.com (1995-08-08) |
Re: thread static bill@amber.ssd.hcsc.com (1995-08-15) |
Re: thread static mac@yukon.asd.sgi.com (1995-08-18) |
Re: thread static stefan.monnier@epfl.ch (Stefan Monnier) (1995-08-21) |
Re: thread static pardo@cs.washington.edu (1995-08-21) |
Re: thread static Roger@natron.demon.co.uk (Roger Barnett) (1995-08-21) |
Re: thread static pardo@cs.washington.edu (1995-08-21) |
[6 later articles] |
Newsgroups: | comp.compilers |
From: | chris@tkna.com (Christopher Helck) |
Keywords: | parallel, question, comment |
Organization: | Compilers Central |
Date: | Tue, 8 Aug 1995 14:14:19 GMT |
Is there a technical reason why most languages don't support threads? I would
like to be able to declare in 'C' a variable as "thread static", there would
be a copy of the variable for each thread. A thread can not modify or read
another thread's variable.
This would allow me to write re-entrant routines like this:
typedef struct {...} cache_t;
int foo(....) {
thread static cache_t cache;
if (value is in cache)
return value;
else {
value = Do_it_the_hard_way();
Put_value_in_cache();
return value;
}
}
I'm aware that there are other, more general, ways of writing
reentrant code in a multi-threaded system -- but this way seems kinda
elegant and easy to use. I suppose you could get into serious
trouble if you declare pointers as thread static, but this may have
more to do with 'C' than this concept.
Most multi-threaded extensions to 'C' and languages that directly
support threads (JAVA is the only one I know) concentrate on locking
resources. This is good. But why not go one step further and allow
thread specific variables?
Thanks.
[I'd guess that it's mostly historical -- languages like C weren't designed
with multiprocessors in mind. It'd also take some linker hackery, but that
shouldn't be too hard. -John]
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.