RegisterAgent currently blocks the Bluetooth command thread while
waiting for DBus. This patch moves the result-handling code into a
DBusReplyHandler, and executes an asyncronous DBus call.
--HG--
extra : rebase_source : 42a5dcc5425555040c7e10b7e68f44da3e39bfc5
Instances of RawDBusConnection can now be contained in nsRefPtr. This
allows to share the DBus connection among multiple threads.
--HG--
extra : rebase_source : fb24472b3b55e77abc7354f17ef679661f62b7fb
RegisterLocalAgent builds is own DBus message. This patch cleans up
the function to use the utility function from DBusUtils.
--HG--
extra : rebase_source : d8615285f75f8bb444accc9aa371df43a3371a4a
The method BluetoothDBusService::GetServiceChannel currently blocks the
Bluetooth command thread while waiting for a DBus message, before it
dispatches a runnable to the main thread.
With this patch, the DBus message is processed asyncronously, and the
runnable gets dispatched from the DBus reply handler.
--HG--
extra : rebase_source : 24519b7dd8d59fcbbf78436092610c8db195f6a2
This patch replaces RemoveDeviceTask by a non-blocking implementation
that does not use the Bluetooth command thread. The request gets send
directly to the DBus, and its reply gets processed in the DBus thread
itself.
--HG--
rename : netwerk/protocol/http/HttpLog.h => netwerk/protocol/http/nsHttp.h
extra : rebase_source : a99a9d6561d94df77d8d9cd53e39371aa1f6386d
This patch replaces SendDiscoveryTask by a non-blocking implementation
that does not use the Bluetooth command thread. The request gets send
directly to the DBus, and its reply gets processed in the DBus thread
itself.
With the landing of bug 830290, no DBus callback should ever run in
the main thread. This patch therefore re-introduces the corresponding
assertion statement.
There is one call to dbus_connection_send_with_reply_and_block in
the Bluetooth code. This patch replaces the call by a call to the
helper function dbus_func_send_and_block, which executes the DBus
operation within the DBus thread.
The Bluetooth system now uses dbus_func_send for sending DBus
messages where dbus_connection_send use used before. The former
function is similar to the latter one, but sends messages from
within the DBus thread; thus avoiding concurrency issues within
DBus.
Things we have done in this patch:
1. Make BluetoothHfpManager/BluetoothOppManager implement BluetoothProfileManagerBase
2. Add function BluetoothService::GetServiceChannel()
3. Once GetServiceChannel() is done, callback Bluetooth*Manager::OnGetServiceChannel() will be invoked
4. Remove unused function BluetoothService::GetSocketViaService()