Sliwa, Przemyslaw (London) wrote:
Hi,
Thanks for help,
On a Linux box I have to link against libc_r too? Probably yes, but could you confirm this?
No. Just use the compiler options "-pthread -D_REENTRANT" consistently. libc_r is a BSD thing.
It seems the usage of the vector cases problems with the multithreaded programs on the multiprocessor machines. I have changed it to queue and the bug has been resolved. I cannot reproduce it now.
I think the bug might lie in the copy-assignment operator for CFXTrade. std::vector<CFXTrade> may use that whereas std::queue<CFXTrade> probably will not. By the way, what are you planning on doing with the money left over as a result of rounding errors? (Seriously, double is not a suitable type for representing amounts of money. Check your local accounting regulations.) Ben.