Re: More multi-threading questions...



Hi Justin,

On Tue, 2003-09-09 at 11:28, Justin Schoeman wrote:
> Oh well, it didn't help. Still the same two assertions, even although I 
> am using only one global ORB, and am using the glib main loop. The glib 
> main loop terminates correctly, then the server code tries to call a 
> CORBA client method (to unbind from the name service), and bang:

	Gack;

>  From the backtrace, it seems as though this occurs because the main 
> loop has exited? How do I get around this? Should I run the main loop in 
> a separate thread, and only kill it off after all client operations have 
> completed?  This is getting horribly complicated, there _must_ be an 
> easier way...

	I'm guessing then that the root problem is that there is something
broken in the thread-interlocking stuff on shutdown; we should wait
until each thread has finished processing whatever it's up to, and stop
processing incoming data before cleaning up; I guess we're not doing
that, and somehow one of your other requests is having problems as it
completes on another thread. Alternatively, perhaps it's just an
ordering problem in the shutdown.

> Nope, I don't think so - this all pretty much follows example
> code from the web, and the memory being leaked is less than
> any of my allocations!

	valgrind ? that's should give you stack traces I think; failing that:
memprof is good.

	Regards,

		Michael.

-- 
 michael@ximian.com  <><, Pseudo Engineer, itinerant idiot




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