AvrX-MessageQueues

Aus LaborWiki
Wechseln zu: Navigation, Suche

Related functions:

void AvrXSendMessage(pMessageQueue, pMessageControlBlock);
void AvrXIntSendMessage(pMessageQueue, pMessageControlBlock);
pMessageControlBlock AvrXWaitMessage(pMessageQueue);

[Bearbeiten] Description

Use MessageQueues to send arbitrary length messages between threads. Analog to FIFO. The Linked-List next pointer are part of the MessageControlBlock, so there are no additional dynamic memory requirements.


Its your job to allocate and free requered memory.

[Bearbeiten] Example


typedef struct {
        MessageControlBlock mcb;         // mandatory first member
        char                payload      // actual payload
} QueueMsg;

[..]

void sender()
{
   QueueMsqA *msg = malloc( sizeof(QueueMsgA) );
   msg->payload = 0;
   AvrXSendMessage( &msgQueue, (MessageControlBlock *)msg );

   [..]
}

void reciever()
{
   QueueMsg *msg;

   msg = (QueueMsg *)AvrXWaitMessage( &msgQueue );
   [..]
   free(msg);  
}

Meine Werkzeuge
Namensräume

Varianten
Aktionen
Navigation
Wiki
Werkzeuge