Re: [Evolution-hackers] Deadlock when accessing an in-proc address book (fwd)



Hi Gergo,

	So; now I read your mail fully :-)

On Thu, 2003-11-27 at 13:18, ERDI Gergo wrote:
> I'm looking at http://bugzilla.gnome.org/show_bug.cgi?id=127535, but there
> seems to be a deadlock problem. 
> If e.g. e_book_load_uri is called by a calendar backend (which resides in
> evolution-data-server, so the addressbook provider is going to be in the
> same process), the flow of events eventually gets to the point where it
> sends a BookOpen notification to listeners, and there's an in-proc
> listener for it.

	Interesting.

> So it waits for op->mutex which is locked by e_book_load_uri.
> This doesn't cause a deadlock for the out-of-proc case because then,
> notifyBookOpened returns instantly (due to its oneway nature) and thus the
> mutex is unlocked by e_book_load_uri by the time e_book_response_open is
> called.

	Ok; so oneway calls across thread should work fine in process as well
as out of process. However - a oneway call to the same thread will have
the old behavior - going in-proces for that call.

	So - I guess it rather depends what you're calling, and what thread
you're in. Possibly then - a solution is to have a separate thread to do
whatever you want to do (which might be a good idea anyway). Either way,
the stack trace would be interesting to me, and taking it out of process
is prolly not such a good sol'n long term.

	Regards,

		Michael.

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




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