Simultaneous RX and TX

I am developing a program using C++ and LimeSuite API. I researched a bit on simultaneous RX and TX and figured that I needed two different threads to accomplish this task. However, once I tried this, it was not successful. The TX and RX parts were still working one after another. Can anybody provide some example code on this that we are sure it works? I also searched the forum thoroughly and was not able to find a proper example that uses LimeSuite API.

Thank you in advance.

USB is botleneck for your design. For each IN or OUT USB packet must be response other side (positive or negative) and this is reason why USB is asyncronious communication channel (ISOC packets only guarantie bandwidth not syncronicity). Solution for this problem could be Timestamp parametar in LMS_RecvStream and LMS_SendStream functions. Your application must fill LimeSDR output buffer at regular interval, transmit will start when Timestamp says. Use one thread and first read data, examine Timestamp and then send prepared data to Lime with desired time to send. This is in theory, library functions are there but I never tested because my app do not need syncronicity, I send chunk of 10-20mS data after receive same amount.