[Bluez-users] multithread / multi process use
From: Emanuele Novelli <hidden>
Date: 2007-01-25 10:29:52
Hello I'm new here, I searched for this issue but found nothing.
Using 2 threads or 2 process for reading a name of a 2 remote devices at
same time reports always the same name.
Is this a bug or the hci functions in library do not support concurrent use
?
(using 2.6.19 kernel on FC6 and bluez libs 3.7.1)
This is a simply way to reproduce this:
open a 2 shells and issue 2 commands at same time
hcitool name <bdaddress of a device close to you>
they both report the same name
here an HCI dump of what's happening
2007-01-25 11:15:06.093319 < HCI Command: Remote Name Request (0x01|0x0019)
plen 10
bdaddr 00:0A:28:DF:2B:D8 mode 2 clkoffset 0x0000
2007-01-25 11:15:06.114456 > HCI Event: Command Status (0x0f) plen 4
Remote Name Request (0x01|0x0019) status 0x00 ncmd 1
2007-01-25 11:15:06.712794 < HCI Command: Remote Name Request (0x01|0x0019)
plen 10
bdaddr 00:17:4B:D3:9F:5B mode 2 clkoffset 0x0000
2007-01-25 11:15:06.717442 > HCI Event: Command Status (0x0f) plen 4
Remote Name Request (0x01|0x0019) status 0x00 ncmd 0
2007-01-25 11:15:07.238429 > HCI Event: Remote Name Req Complete (0x07) plen
255
status 0x00 bdaddr 00:0A:28:DF:2B:D8 name 'Seleso'
2007-01-25 11:15:07.239434 > HCI Event: Command Status (0x0f) plen 4
Unknown (0x00|0x0000) status 0x00 ncmd 1
2007-01-25 11:15:10.151342 > HCI Event: Remote Name Req Complete (0x07) plen
255
status 0x00 bdaddr 00:17:4B:D3:9F:5B name 'Wince'
the second event with the second name is tracked but never reported back to
the caller cause the unknown event received.
so i see the name 'Seleso' as result on both the shells
this is the behaviour if I use the 2 command sequentially they works fine.
hcitool name 00:0A:28:DF:2B:D8
2007-01-25 11:19:51.930394 < HCI Command: Remote Name Request (0x01|0x0019)
plen 10
bdaddr 00:0A:28:DF:2B:D8 mode 2 clkoffset 0x0000
2007-01-25 11:19:51.951520 > HCI Event: Command Status (0x0f) plen 4
Remote Name Request (0x01|0x0019) status 0x00 ncmd 1
2007-01-25 11:19:52.199514 > HCI Event: Remote Name Req Complete (0x07) plen
255
status 0x00 bdaddr 00:0A:28:DF:2B:D8 name 'Seleso'
hcitool name 00:17:4B:D3:9F:5B
2007-01-25 11:20:39.520967 < HCI Command: Remote Name Request (0x01|0x0019)
plen 10
bdaddr 00:17:4B:D3:9F:5B mode 2 clkoffset 0x0000
2007-01-25 11:20:39.542195 > HCI Event: Command Status (0x0f) plen 4
Remote Name Request (0x01|0x0019) status 0x00 ncmd 1
2007-01-25 11:20:43.358090 > HCI Event: Remote Name Req Complete (0x07) plen
255
status 0x00 bdaddr 00:17:4B:D3:9F:5B name 'Wince'
Since I need to use search names and search services (FAX especially) on a
multi-threaded application i'd like to know if is this possible or somewhere
there is a issue that prevent this.