title: why is boost lockfree freelist size is limited to a maximum of 65535 objects?
body: <p>Why is the boost lockfree size is fixed to 65535 objects?</p>
  
  <pre><code>typedef boost::lockfree::queue&lt;int, boost::lockfree::fixed_size&lt;true&gt;&gt; MyQueue;
  MyQueue queue(1024*100);
  </code></pre>
  
  <p>The above code throws exception.</p>
  
  <p>the reasoning i find in the code is that array-based freelists only support a 16bit address space.</p>
  
  <p>what is the reason for this? i am using it on 64bit linux machine. then why limit the addressing to 2**16 items? does the queue use a 'short int' for indexing? does atomic instructions only work for 16bit word size?</p>
  
  <p>what should i do to have a fixed sized queue with more capacity than this?</p>