Все операции с портами в Rebol 3 асинхронны. Единственный способ синхронного общения, который я могу найти, - это позвонить wait
.
Но проблема с вызовом wait в этом случае заключается в том, что он будет проверять события для всех открытых портов (даже если они не находятся в блоке портов, переданном для ожидания). Затем они вызывают свои отвечающие обработчики событий, но чтение / запись могут выполняться в одном из этих обработчиков событий. Это может привести к рекурсивным вызовам «ожидания».
Как мне обойти это?