ORBit2 threading patches ...



Hi Mark,

	I was going to commit these, but we fail a single poa regression test -
which is wierd and I havn't had time to chase.

	This is really just an excuse to get these off my disk so ... very much
not finished. Patches against HEAD.

	My aim has been to leave the 'normal' single threaded, re-enterant path
mostly unscathed, and focus on re-structuring that, while adding misc.
bits of more sane thread-capability, replacing the somewhat crufty /
duff dribs and drabs that were there.

	So far, at last check it did MT client stuff just fine; ie. we can
reliably do MT client -> ST server calls just fine. The MT server
stuffis flakey - indeed even the ST server with threading enabled
doesn't yet work - but that's fixable.

	Remaining gotchas (only in threaded mode) include:

	* shutdown, - needs to be done by the I/O thread, needs somewhat
	  more thought, and more linc API to fix the 'flushing' shutdown
	  mode we've never supported [ but which would be really nice 
	  for async unrefs :-].

	* connection initiation, if the cnx is not already connected, we 	  do
some unsafe things with the linc mainloop to wait for it to
	  connect; the main I/O thread should be doing the cnx, and we 
	  should wait for a signal.

	* MT incoming request processing - this needs writing really;
	  we should prolly re-use the ORBit-MT stuff which uses 
	  g_thread_pools and lots of other fun bits.

	Anyhow; patches are at:

	http://primates.ximian.com/~michael/linc-mt.diff and
	http://primates.ximian.com/~michael/ORBit2-mt.diff

	I hope to merge these up when I get back from FOSDEM, since as I say
they don't (won't) affect the existing ST infrastructure.

	Comments welcome,

	Regards,

		Michael.

-- 
 mmeeks@gnu.org  <><, Pseudo Engineer, itinerant idiot




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]