[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
	 exception handling?"


	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....


<a href="http://lkcl.net">http://lkcl.net</a>

More information about the Ros-dev mailing list