Название может быть немного расплывчатым. Вот что я имею в виду:
Скажем, у меня есть два способа получить информацию о моей программе. Первый - через клавиатуру с использованием функции getLine
, которая блокирует чтение строки. Другой, скажем, через TChan
, где использование readTChan chan
также приведет к блоку, пока значение не появится в канале, после чего оно будет прочитано.
То, чего я хочу достичь, - это ждать обоих значений, используя один поток и не позволяя моему ЦП перейти на 100%. В тот момент, когда доступно одно из двух значений, оно извлекается и программа возобновляет работу. (Скажите, используя Either
, чтобы уведомить, какое из двух значений было получено.)
Возможно ли это?
Большое спасибо!