ionotify VS readcond or how to get most of a serial port

Does anyone know how to make ionotify dealing with devc-ser8250 signal when
a number of bytes is available in the input buffer? I need it work like
reacond, but want to specify a timeout less then 0,1 sec. Changing VMIN in
termios structure doesn’t help (I guessed it was the thing ment in
documentation).
Another problem with readcond and nonblocking io is that it returns with
error when the buffer is empty and I have to wait for a period of time to
call it again.
And moreover I get strange results when try to wait for a single byte
available in the input buffer. I counted a number of cycles and found it
about (not exactly!!!) 2 times more than number of bytes read. My code looks
like this:

do

rc = read (Port, &buf[0] + Len, MaxLen - Len);
if ( rc >= 0)
{
Len+=rc;
}
else
rc = ionotify( Port, _NOTIFY_ACTION_POLLARM, _NOTIFY_COND_INPUT,
&event );
if ( rc == 0 )
rc = sigtimedwait( &set, NULL, &rqtp );
} while (Len < NeedLen);

Dmitry Androshchuk.