легко проверить, установив в программе точки останова сразу перед ней и сразу за ней. Ваш дивайс, от которого вы ждете данные, может быть не готов к передаче. Или, например, один байт может потеряться. А ваша функция ждет 10 байт до бесконечности, т.к. вы не пользуетесь тайм-аутами ...