On 30.06.2005 [00:24:10 +0300], Michael S. Tsirkin wrote:
> Quoting r. Nishanth Aravamudan <[EMAIL PROTECTED]>:
> > > > @@ -710,11 +711,12 @@
> > > >                 if (!accept_conn) {
> > > >                         DECLARE_WAITQUEUE(wait, current);
> > > >                         add_wait_queue(listen_sk->sk_sleep, &wait);
> > > > -                       set_current_state(TASK_INTERRUPTIBLE);
> > > >  
> > > >                         while (timeout > 0 &&
> > > >                                listen_conn->state == SDP_CONN_ST_LISTEN 
> > > > &&
> > > >                                !listen_conn->backlog_cnt) {
> > > > +
> > > > +                               set_current_state(TASK_INTERRUPTIBLE);
> > > >                                 sdp_conn_unlock(listen_conn);
> > > >                                 timeout = schedule_timeout(timeout);
> > > >                                 sdp_conn_lock(listen_conn);
> 
> What is the reason set_current_state is done before sdp_conn_unlock
> and not just before schedule_timeout?

That's a good point; doesn't really matter where in the loop the set
happens as long as it is before, if Libor's version goes in, or after,
if my version does.

But, as I said, I think Libor's version might miss wake-up events.

Thanks,
Nish
_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to