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.