Boost logo

Boost :

From: John Max Skaller (skaller_at_[hidden])
Date: 2001-08-20 14:58:20


williamkempf_at_[hidden] wrote:

> > Well specified. As to the new join semantics:
> > I have some concern that at one place you argue for the
> > strongest semantics, whereas elsewhere you support
> > thread local storage -- which is a hack -- and consider
> > adopting threads.
>
> TLS may be a "hack" but it's necessary. And adopting threads is
> basically necessary as well.

        "Valid" :-)

> > Ideally, you could separate 'hacks' like TLS
> > and adoption, from 'top level pure boost threads',
> > with which new well principled designs could be constructed.
> > [Is there a way to do this using, for example, an extra
> > namespace?]
>
> One of us isn't understanding the other here, so I can't comment on
> this. Sorry.

        Try again. If this were a new programming language,
and you were designing a brand new library for it, you would not
need TLS or thread adoption. So it would be nice to have two
interfaces: one for brand new threading applications,
the 'pure' boost interface, and an extension which also
supports integration with exitsing code.

        If this were just a class, I'd say have a base
and a derived class (in a separate header file).
Another technique would be two namespaces. I don't know
if it is possible, or what the best technique is:
I'm asking if there is a sensible way to _separate_
out the pure interface from the integration extension.

----
	At least one reason is that I'd like to do the
same thing when I bind the threads library into Felix.
Felix really is a 'brand new programming language' :-)
But it also supports 'integration'. In particular,
the primary design impetus comes from telephony
applications where multiple worker threads are
used to distribute events between CPUs: Felix is
specifically designed to 'bind' into such an 
existing architectural framework. most of the
threading interface must be integrated into the binding
code (which maps the existing C++ architecture onto
the Felix driver architecture), since Felix 
cooperatively multi-tasked 'threads' generally
should not only never block, but also never do
expensive operations synchronously. 
-- 
John (Max) Skaller, mailto:skaller_at_[hidden] 
10/1 Toxteth Rd Glebe NSW 2037 Australia voice: 61-2-9660-0850
New generation programming language Felix  http://felix.sourceforge.net
Literate Programming tool Interscript     
http://Interscript.sourceforge.net

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk