On Fri, Apr 21, 2006 at 01:52:58PM -0700, Roland McGrath wrote:
Have you considered instead using standard features as
specified in POSIX
since around 1996?
dce predates the posix standards - that's why all dce projects, some of
them multi-hundred-million-dollar projects by ibm, fujitsu, EDS etc -
have had to use posix draft 4 threading.
the opengroup developers had to make a decision: they couldn't wait
around for a few years while the POSIX committee made up their minds.
so all the companies who were running dce/rpc applications had to write
POSIX Draft 4 threading libraries for their operating systems.
ibm did it. sun microsystems did it. microsoft did it (Win32 threads)
when they ported the BSD-compatible OSF/1.0 licensed DCE 1.1 reference
implementation to win32, as the basis of MSRPC.
What's your plan for other POSIX systems, such as
Solaris?
forget solaris: sun microsystems can deal with solaris.
linux is the innovation leader, now, not solaris.
If you don't want to cancel threads as
cancellation is defined by POSIX,
then why use cancellation instead of another mechanism that matches your needs?
[long answers first, short one at end]
because, despite being an absolutely critical strategic project that
could save key strategic free software projects who are _not_ using it
about a man-decade of development effort _each_, there is absolutely
zero recognition of this and therefore absolutely zero funding of the
project.
luke howard uses freedce for his XAD project, which is a (proprietary)
Active Directory replacement that he released THREE YEARS ago (and the
samba team _still_ haven't got an active directory server replacement
yet).
XAD is capable of running on IBM z390 mainframes, and luke howard
has won business awards for his work.
because, as it is "old" code, with a very archaic and interesting
development history, it needs work to be brought up-to-date. and
because it needs work, and _because_ it is so very comprehensive
in what it does, people misunderstand and do not appreciate its
complexity, and therefore think, "i can do better than this", and
fail miserably, and so it gets ignored.
the gist is this: the use of cancellation is embedded very deeply into
the design of this code.
and there isn't anyone with the time, money, resources or
immediately-available knowledge to rip a quarter of a million lines of
code apart looking for a way to shoe-horn some very complex and subtle
interaction _out_ of freedce so that it fits nicely with POSIX.
anyone think i should try to put the "emulation" bit back
into dcethreads (to re-wrap the cancellation rules of posix
draft 4 but to keep the new API) and write redhat off (just
like charles advised right at the beginning of this thread),
let me know.
l.