On Fr, 2012-01-13 at 14:29 +0100, Patrick Ohly wrote:
> commit 22b8e3286451b43ac9914eafde725e5d8a45fe27
> Author: Patrick Ohly <patrick.o...@intel.com>
> Date:   Fri Jan 13 14:19:51 2012 +0100
> 
>     GDBus GIO: implemented client/server
>     
>     This pretty much follows the example from:
>     
> http://developer.gnome.org/gio/2.28/GDBusServer.html#GDBusServer.description
>     
>     However, there seems to be a race condition, perhaps related to
>     multithreading (messages are processed in a second thread by GIO):
>     "valgrind test/dbus-client-server --forkexec" works, whereas without
>     valgrind the call either times out or fails with "No methods
>     registered with this name" in the server's MethodHandler::handler()
>     (occurs rarely).
>     
>     Not usable at the moment.
> 
> I'm stuck on that. Unless someone has a better idea, I'll have to start
> compiling a debug version of glib and look into GIO GDBus.

Duh! Turned out that I wasn't returning a proper return boolean in the
"new-connection" handler. The method returned void, which ended up being
a random value in the caller - that explains why it worked sometimes.

Fixed now. After also fixing the handling of asynchronous method
implementation in GDBus GIO, local sync works with it.

-- 
Best Regards, Patrick Ohly

The content of this message is my personal opinion only and although
I am an employee of Intel, the statements I make here in no way
represent Intel's position on the issue, nor am I authorized to speak
on behalf of Intel on this matter.


_______________________________________________
SyncEvolution mailing list
SyncEvolution@syncevolution.org
http://lists.syncevolution.org/listinfo/syncevolution

Reply via email to