home   contents  previous      next        up

Каналы

Связь между процессами осуществляется с помощью переменных типа Channel (channel_h.html). Все каналы должны быть созданы и проинициализированы до их использования. Внешние каналы, связывающие задачи, являются параметрами соответствующих программ. Значения этих параметров, заданные в описании конфигурации программы, можно получить с помощью функции get_param.

Функции ChanAlloc, ChanInit позволяют создать и инициализировать внутренний канал значением NotProcess_p, указывающим на то, что нет процессов, ожидающих обмена по этому каналу.

Функция ChanReset записывает в канал значение NotProcess_p и возвращает либо NotProcess_p, если нет процессов осуществляющих обмен по каналу, либо дескриптор процесса, ожидающего обмена посредством этого канала.

Функции ChanIn/ChanOut, ChanInChar/ChanOutChar, ChanInInt/ChanOutInt используются для обмена данными по каналам между процессами. Функции не в состоянии обнаружить, например, ошибки соединения процессов, в результате которых один конец линии не обслуживается. Поэтому процессы, использующие эти функции, при возникновении подобных ситуаций будут постоянно находиться в состоянии ожидания.

Функции ChanInChanFail/ChanOutChanFail, ChanInTimeFail/ChanOutTimeFail аналогично функциям ChanIn/ChanOut принимают или передают данные, но в отличие от них, функции ChanInChanFail/ChanOutChanFail можно аварийно завершить, передав целое и только целое значение по специальному указываемому каналу. Функции ChanInTimeFail/ChanOutTimeFail возвращают 0, если передача данных нормально завершена. Если же канал не готов к приему/передаче данных до наступления указанного времени, то функции аварийно завершаются и возвращают значение 1.


home   contents  previous      next        up