уточнение. не в шину в загали, а конкретному устройству, потому как все устройства имеют свой сигнал выборки. некоторым задачам нужно именно выплюнуть подготовленные байты и все, никакого ответа они не ожидают. Другим наоборот - нужен именно ответ. Причем, поскольку обмен по шине будет занимать определенное время, то ничего эта задача делать не будет, будет просто ждать, пока транзакция не окончится.
Все равно мне нужно делать автомат, который будет осуществлять транзакции. Он будет работать частично через прерывания, запускаться из основного потока выполнения. как бы да - тут спокойно можно и двумя семафорами обойтись, можно сделать очередь.
наверное, все зависит от того, какой процент транзакций будет просто выплюнуть и забыть, а какой - выполнить транзакцию и обработать принятые данные.