Boost logo

Boost Users :

Subject: [Boost-users] Help with lockfree queue
From: TYSON Kieran (Kieran.Tyson_at_[hidden])
Date: 2013-11-12 18:58:41


[@@ 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.

-------------------------------------------------------------------------



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net