RE: Is Calabash thread-safe, multiprocessor-safe?

BTW, our implementation (Calumet) is written to be thread-safe. Once you
get hold of a Pipeline object (which is equivalent to XProcContext in
Calabash, I guess), you can run it as many times you want, or
concurrently. A Pipeline has no internal state that changes while
running it.


	From: []
On Behalf Of David A. Lee
	Sent: Wednesday, April 29, 2009 9:06 PM
	To: Norman Walsh
	Cc: XProc Dev
	Subject: Re: Is Calabash thread-safe, multiprocessor-safe?
	As an independent 2nd opinion.
	I've integrated calabash code into a multi-threaded application.
I have not reviewed all the code, but I have reviewed quite a bit of it.
	If you stick to seperate instances of XProcRuntime per thread
and don't share ANY internal data between threads,
	I also believe it should be thread safe.
	However I can assert definitely that XProcRuntime is not
sharable across threads.  There are operations in some steps which
affect this object at runtime, which would definately mess things up in
different threads if they were sharing it.
	Norman Walsh wrote: 

		"Costello, Roger L." <>
<>  writes:

			One of the organizations I support is
considering using XProc and
			using Calabash. They asked me some questions
that I was not able to
			1. How confident are you in the quality and
correctness of the
			Calabash implementation?

		Uhhhhh. I'm reasonably confident that it produces
correct results, but
		there are known bugs:
		and I'm sure there are unknown bugs too. It's 'beta', at

			2. In your experience is Calabash thread-safe,

		I've made no effort to make XProcRuntime objects thread
safe. I'm not
		even confident that they're serially reusable. But if
you create two
		XProcRuntimes, I don't think there'd be any issue with
		pipelines through them in different threads.
		The current implementation is single-threaded, so I
don't think
		multiprocessors are relevant.
		                                        Be seeing you,

	David A. Lee

Received on Monday, 4 May 2009 07:18:14 UTC