[ros-dev] compiling botched version of dcethreads exception using
pthread-win32 - WORKS!
Luke Kenneth Casson Leighton
lkcl at lkcl.net
Sun Sep 18 12:37:34 CEST 2005
okay, it's not time to get totally excited yet, but i
have successfully compiled - and run, and confirmed as
working on ros - some of the test programs from dcethreads
(http://sf.net/projects/freedce) when cross-compiled with
mingw32 and linked with pthreads-win32.
this is _very_ significant because it means that there is a
good chance of replicating entegrity's work - PC-DCE - with
zero modifications to the freedce source code.
i've cut out entirely the dcethreads "emulation" stuff,
which means that dcethreads posix draft 4 compliance -
including the ability to pass on thread cancellation across
an RPC client/server app boundary, and including the ability
to pass on signals across an RPC client/server app boundary -
are completely out the window...
... but i don't care.
the bits "remaining" in my hacked-together-version of dcethreads is
_just_ the exception handling - exc_handling.c and exc_handling.h pretty
that means that the DCE "TRY", "RAISE", "CATCH" and "EXCEPT"
macros are all there.
it's early days, but this is good news.
now. here's what i don't want to hear from anyone:
"why in hell's name are you doing this? why can't you just remove
all references to posix threads and all references to DCE/RPC
lkcl at highfield:~/sf/freedce/freedce$ find . | xargs grep pthread | wc
770 3965 64010
lkcl at highfield:~/sf/freedce/freedce$ find . -name "*.[ch]" | xargs grep ENDTRY | wc
105 248 4490
lkcl at highfield:~/sf/freedce/freedce$ find . -name "*.[ch]" | xargs grep RAISE | wc
202 731 12799
lkcl at highfield:~/sf/freedce/freedce$ find . -name "*.[ch]" | xargs grep CATCH | wc
217 685 12392
in short: modifying several thousand lines of code,
by hand, is something that microsoft can happily pay
some donut code-dunker to do (and did, probably back
in 1990-1993) but i sure as hell ain't doing it for
a proof-of-concept bit of work.
"why are you doing this and doing it to _us_? go away!!"
you are inflicting much pain upon yourselves, even though you
probably don't know it. don't like what i'm doing, don't like
what i have to say? tough - get over it: i don't have time
or money to waste to stroke egos. i'll give you what time i can
and what facts i can and also i will present you with an
opinion: if you don't like that opinion or the way it's
presented, that is your choice. live with it, deal with it
or ignore it - i'll pretend i don't care which.
i give you information, present you with choices: where you go
from there - as neo says as the end of matrix 1....
More information about the Ros-dev