If read failed due to signal or blocking watch was removed resulting in closing /dev/vhci and emulated adapter being removed. This was affecting android-tester since premature removal of adapter is considered error on android daemon. --- emulator/hciemu.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/emulator/hciemu.c b/emulator/hciemu.c index 50285e4..fcaeb70 100644 --- a/emulator/hciemu.c +++ b/emulator/hciemu.c @@ -179,6 +179,13 @@ static gboolean receive_btdev(GIOChannel *channel, GIOCondition condition, fd = g_io_channel_unix_get_fd(channel); len = read(fd, buf, sizeof(buf)); + if (len < 0) { + if (errno == EAGAIN || errno == EINTR) + return TRUE; + + return FALSE; + } + if (len < 1) return FALSE; -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html