Changeset 4d2989


Ignore:
Timestamp:
2006-09-06 20:23:24 (8 years ago)
Author:
Poul-Henning Kamp <phk@…>
Branches:
2.0, 2.1, tags/varnish-2.0, tags/varnish-2.0-beta1, tags/varnish-2.0-beta1@3141, tags/varnish-2.0-beta2, tags/varnish-2.0-beta2@3221, tags/varnish-2.0-rc1, tags/varnish-2.0-rc1@3266, tags/varnish-2.0-tp1, tags/varnish-2.0-tp1@2734, tags/varnish-2.0-tp2, tags/varnish-2.0-tp2@2803, tags/varnish-2.0.1, tags/varnish-2.0.2, tags/varnish-2.0.3, tags/varnish-2.0.4, tags/varnish-2.0.5, tags/varnish-2.0.6, tags/varnish-2.1.0, tags/varnish-2.1.1, tags/varnish-2.1.2, tags/varnish-2.1.3, tags/varnish-2.1.4
Children:
46e2ef
Parents:
7b7fa4
git-author:
Poul-Henning Kamp <phk@…> (2006-09-06 20:23:24)
git-committer:
Poul-Henning Kamp <phk@…> (2006-09-06 20:23:24)
Message:

Fix the poll acceptor, we need to cache the fd as sp->fd might
change to -1 under us.

git-svn-id:  http://www.varnish-cache.org/svn/trunk@923 d4fa192b-c00b-0410-8231-f00ffab90ce4

File:
1 edited

Legend:

Unmodified
Added
Removed
  • bin/varnishd/cache_acceptor_poll.c

    rccf4cc r4d2989  
    7979        struct sess *sp, *sp2; 
    8080        struct timespec ts; 
    81         int i; 
     81        int i, fd; 
    8282 
    8383        (void)arg; 
     
    101101                                break; 
    102102                        CHECK_OBJ_NOTNULL(sp, SESS_MAGIC); 
    103                         if (pollfd[sp->fd].revents) { 
     103                        fd = sp->fd; 
     104                        if (pollfd[fd].revents) { 
    104105                                v--; 
    105106                                i = vca_pollsession(sp); 
     
    107108                                        continue; 
    108109                                TAILQ_REMOVE(&sesshead, sp, list); 
    109                                 vca_unpoll(sp->fd); 
     110                                vca_unpoll(fd); 
    110111                                if (i == 0) 
    111112                                        vca_handover(sp, i); 
     
    120121                                continue; 
    121122                        TAILQ_REMOVE(&sesshead, sp, list); 
    122                         vca_unpoll(sp->fd); 
     123                        vca_unpoll(fd); 
    123124                        vca_close_session(sp, "timeout"); 
    124125                        SES_Delete(sp); 
Note: See TracChangeset for help on using the changeset viewer.