Как да изчистите/изчистите буфера на опашката за съобщения във VxWorks?

Бих искал да знам, има ли някакъв метод за изчистване на всички съобщения, които са конвейерно насочени към 1 msgQId?????


person Pratik    schedule 27.07.2012    source източник


Отговори (1)


Няма вграден API за изтриване на всички съобщения от опашка от съобщения.
Ако всичко, което искате да направите, е да отхвърлите всички съобщения от опашка, ето бърз начин да направите това:

void discardQMessages(MSG_Q_ID id) {
  while(
        msgQReceive(id, NULL, 0, NO_WAIT) != ERROR
       )    ;

  if {errno != S_objLib_OBJ_UNAVAILABLE)
     /* Uh oh... got some problem */
}

Трябва винаги да проверявате errno, когато получите грешка от което и да е извикване на OS API.

person Benoit    schedule 27.07.2012
comment
Thnx за Ур информация. и аз си мислех само по този начин. - person Pratik; 30.07.2012