title: Boost Asio: checking socket ability to be readable/writable
body: <p>In my application I have to mix of both asio created sockets and native ones(coming from C posgresql library).</p>
  
  <p>What I need is the ability to get notification out of boost's io_service class instance on the particular socket to be in non-blocking readable/writable state, but without performing an actual read/write(will be done by 3-rd party library), i.e. effectively doing only <strong>select</strong>()/<strong>poll</strong>()</p>
  
  <p>Can it be achieved with passing 0 as buffer length to the function like <strong>async_read_some</strong>()?</p>
  
  <p>I've made a quick test and indeed a call to <strong>async_read_some</strong>() with zero buffer length does call read event handler but I am not sure it is done after blocking in <strong>select</strong>()/<strong>poll</strong>() over the corresponding socket handle, waiting for the real "can read" state.</p>