5.1+–+Inter-thread+communication+using+protected+queues+in+Linux

I denne øvelse har vi opbygget et system af to tråde der sender messages til hinanden via en messagequeue.

Alle beskederne nedarver fra en Message-klasse. I denne er destructoren virtual, det er vigtigt da den nedarvede destructor ellers ikke vil blive kaldt, og der ikke vil blive ryddet ordenligt op.

Herefter blev selve messagequeue klassen oprettet. Den blev baseret på en deque fra std::, da denne denne kø er god til at sætte ind i den ind og fjerne i begge ender. I messageQueue laves en push og en pop funktion, som svarer til send og receive. push venter til køen ikke er fuld, og derefter indsætter den en Message i køen. push venter til køen ikke er tom hvorefter den fjerner det seneste element.

Køen skal indeholde objekter med et ID og en message pointer, så der kan sendes tilbage til der hvor beskeden kom fra. Dette laves som en struct item: item(Message* msg, size_t id)
 * msg_(msg), id_(id)

{ }

Det er disse items, der fyldes på køen.