[@@ OPEN @@]

Hello,

 

I am using a global lockfree queue to transfer a message from different threads.

The program compiles and runs without fault up until the program exits and the queues destructor is called. An unhandled exception is thrown on the destruction of the queue.

Below is the code used to set up the queue.

 

#define B1_OUTPUT_LENGTH_PER_CHANNEL   (32000)

#define B2_OUTPUT_LENGTH_PER_CHANNEL   (32000)

#define B3_OUTPUT_LENGTH_PER_CHANNEL   (64000)

#define NB_CHANNELS                    (8)

 

typedef struct s_OutputMsg

{

       float             dataB1[(int)B1_OUTPUT_LENGTH_PER_CHANNEL*NB_CHANNELS];

       float             dataB2[(int)B2_OUTPUT_LENGTH_PER_CHANNEL*NB_CHANNELS];

       float             dataB3[(int)B3_OUTPUT_LENGTH_PER_CHANNEL*NB_CHANNELS];

       int               dataLength;  

} OutputMsg;

 

boost::lockfree::queue<OutputMsg, boost::lockfree::fixed_sized<true>> dataMsgQueue(100);

 

My first thoughts are that there are limitations on the size of the message because I have used simple integer queues in the past with no problem.

Are there size limitations on the message of a lockfree queue?

 

Thanks,

Kieran

This message contains OPEN information that is not sensitive and can be freely accessed by people both inside and outside of the Thales Group

This email was classified by Tyson, Kieran on Wednesday, 13 November 2013 10:58:41 AM

------------------------------------------------------------------------- DISCLAIMER: This e-mail transmission and any documents, files and previous e-mail messages attached to it are private and confidential. They may contain proprietary or copyright material or information that is subject to legal professional privilege. They are for the use of the intended recipient only. Any unauthorised viewing, use, disclosure, copying, alteration, storage or distribution of, or reliance on, this message is strictly prohibited. No part may be reproduced, adapted or transmitted without the written permission of the owner. If you have received this transmission in error, or are not an authorised recipient, please immediately notify the sender by return email, delete this message and all copies from your e-mail system, and destroy any printed copies. Receipt by anyone other than the intended recipient should not be deemed a waiver of any privilege or protection. Thales Australia does not warrant or represent that this e-mail or any documents, files and previous e-mail messages attached are error or virus free. -------------------------------------------------------------------------