On Fri, Oct 06, 2000 at 01:46:26PM -0400, Marc Tardif wrote:
> If I initiate multiple aio_read requests on sockets, how can
> I set a timeout for each request? If I call aio_waitcomplete,
> that sets a timeout for all. So, if I have 5 aio_reads, I
> would call aio_waitcomplete as many times in a loop waiting
> to process the first finished request. Problem with this
> approach is that I can end up waiting a maximum of 5*timeout
> for the last request to finish because aio_waitcomplete is
> called again with the same timeout each time. I could imagine
> a way this can be solved by keeping a timer and calling
> aio_waitcomplete with the time remaining and then, when the
> timer expires, call aio_return. But is there a simpler way?
> Is there sample code or documentation I should read on the
> subject?
 

I think there's a bit of confusion here.  The timeout value to
aiowaitcomplete is similar to that of poll; basically you are 
telling the system how long you are willing to stall until any
request comes ready.  The value is not indicative of a maximum
timeout on the I/O request; there is none.  If you want to have
a time limit on each request, you will need to implement your 
own timer mechanism, and call aio_cancel() to terminate those 
which haevn't completed.
--
Jonathan


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to