I am coding for data exchange between threads by boost C++. 

Some threads need to read or write some data structure asynchronously. 

For example, we have thread 1 and thread 2.

When thread 1 needs to get some data from thread 2, if the data is still not available for thread 1, 
it should not be blocked and can do other things and then go back to check the data again later. 

The same things are for thread 2. 

What are the API routines of boost non-blocking read write , which can do that ?

I cannot find it in boost document. 

I find something for solaris here: 

<http://www.shrubbery.net/solaris9ab/SUNWdev/MTP/p31.html>

I need API routines that can support:

(1) post the read write routine at first 
(2) do other things
(3) then go back to check whether the data has been available or not

thanks