I am cross posting this to dbus and connman. I have an issue where I am trying to make a call to connman using dbus and I get a crash in dbus.
I have a class that makes various connman calls, and also is set up to receive messages asynchronously. So, In my class, I run a new thread that it's only purpose is to create a g_main_loop, then run it, the main part of the class is called when the user wants to initiate various events (for example a wireless scan), and to respond to connman messages on dbus (scan complete). I have a problem though that when I issue any connman calls after I've initiated g_main_loop_run I get a crash. If I issue any calls (for example GetProperties, Scan...), before I initiate the main loop, it functions just fine. I don't have much of a stack trace to go on, but this is all I've got at this point: #0 0xb7d71114 in ?? () from /lib/i386-linux-gnu/libdbus-1.so.3 #1 0xb7d6fbe7 in ?? () from /lib/i386-linux-gnu/libdbus-1.so.3 #2 0xb7d6fc5b in ?? () from /lib/i386-linux-gnu/libdbus-1.so.3 #3 0xb7d6ee47 in ?? () from /lib/i386-linux-gnu/libdbus-1.so.3 #4 0xb7d6f727 in ?? () from /lib/i386-linux-gnu/libdbus-1.so.3 #5 0xb7d55803 in ?? () from /lib/i386-linux-gnu/libdbus-1.so.3 #6 0xb7d563b2 in dbus_connection_get_dispatch_status () from /lib/i386-linux-gnu/libdbus-1.so.3 #7 0xb7d9df58 in ?? () from /usr/lib/i386-linux-gnu/libdbus-glib-1.so.2 #8 0xb7c339b3 in g_main_context_prepare () from /lib/i386-linux-gnu/libglib-2.0.so.0 #9 0xb7c342df in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0 #10 0xb7c3476b in g_main_loop_run () from /lib/i386-linux-gnu/libglib-2.0.so.0 #11 0x08051373 in NetworkOjbect::NetworkLoop () at NetworkOjbect.cpp:1054 #12 0xb7ad0f70 in start_thread (arg=0xb74ffb40) at pthread_create.c:312 #13 0xb7a0770e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:129 The entire function for NetworkLoop is as follows (again it's started in its own thread): int NetworkOjbect::NetworkLoop(size_t) { GMainLoop *pMainNetworkLoop; pMainNetworkLoop = g_main_loop_new(NULL, 0); if (!pMainNetworkLoop) { Trace("Could not start main network loop\n"); exit(-1); } g_main_loop_run(pMainNetworkLoop); return(0); } Is there something with my logic in running the main loop in its own thread? Is there a better way to debug this? Thanks for your input. Tom _______________________________________________ connman mailing list connman@connman.net https://lists.connman.net/mailman/listinfo/connman