free_buf

Синтаксис

void free_buf(union SIGNAL **sig);

Описание

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

Параметры

sig указатель на указатель_на_сигнальный_буфер

Возвращаемое значение

Нет

Ограничения

Освобождать буфер, принадлежащий другому процессу - ошибка. Такие буферы должны освобождаться владельцем, или владелец должен быть изменён вызовом restore до вызова free_buf. Этот вызов может разрешить прерывания, если они были запрещены при вызове.
(пропущено про старые реализации)
Отметим, что многие вызовы OSE возвращают буферы, выделенные ядром. Эти буферы имюет типы, используемые разными функциями, и должны быть приведены к типу (union SIGNAL **) при освобождении.

См. также

Пример

static const SIGSELECT any_sig[]= {0};
union SIGNAL
{
  SIGSELECT sig_no;
}
 
OS_PROCESS(my_process)
{
  union SIGNAL * sig;
 
  for(;;)
  {
     sig = receive((SIGSELECT *) any_sig);
     free_buf( &sig );
  }
}
You: Guest
You permissions: Read
elflib/functions/free_buf.txt · Последние изменения: 30/03/2015 00:00 (внешнее изменение)
Total pages: 365
RSS on Mobilefree Wiki www.chimeric.de Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Valid XHTML 1.0
© 2005-2018 supertrubka.org