~ubuntu-branches/ubuntu/jaunty/nginx/jaunty-updates

« back to all changes in this revision

Viewing changes to src/event/modules/ngx_poll_module.c

  • Committer: Bazaar Package Importer
  • Author(s): Jose Parrella
  • Date: 2007-12-08 11:27:54 UTC
  • mfrom: (1.1.5 upstream)
  • Revision ID: james.westby@ubuntu.com-20071208112754-23ohg2b1zshkdayw
Tags: 0.5.33-1
* New stable upstream release (Closes: #451173)
* nginx now provides httpd, httpd-cgi virtual packages
  (Closes: #439468, #452025)
* sites-enabled/default link is now provided only on fresh 
  installations (Closes: #432961)
* Updated code for online upgrading of nginx (Closes: #445246)
* Reviewed maintainer scripts for correct behaviour on updates
  (Closes: #452787, #435965)
* Removed debian/nginx.links and debian/preinst.
* Changing Maintainer address to bureado@debian.org.
* Welcoming Fabio Tranchitella <kobold@debian.org> as an nginx 
  uploader for Debian. Thanks for your patches.

Show diffs side-by-side

added added

removed removed

Lines of Context:
11
11
 
12
12
static ngx_int_t ngx_poll_init(ngx_cycle_t *cycle, ngx_msec_t timer);
13
13
static void ngx_poll_done(ngx_cycle_t *cycle);
14
 
static ngx_int_t ngx_poll_add_event(ngx_event_t *ev, int event, u_int flags);
15
 
static ngx_int_t ngx_poll_del_event(ngx_event_t *ev, int event, u_int flags);
 
14
static ngx_int_t ngx_poll_add_event(ngx_event_t *ev, ngx_int_t event,
 
15
    ngx_uint_t flags);
 
16
static ngx_int_t ngx_poll_del_event(ngx_event_t *ev, ngx_int_t event,
 
17
    ngx_uint_t flags);
16
18
static ngx_int_t ngx_poll_process_events(ngx_cycle_t *cycle, ngx_msec_t timer,
17
19
    ngx_uint_t flags);
18
20
static char *ngx_poll_init_conf(ngx_cycle_t *cycle, void *conf);
19
21
 
20
22
 
21
23
static struct pollfd  *event_list;
22
 
static int             nevents;
 
24
static ngx_int_t       nevents;
23
25
 
24
26
 
25
27
static ngx_str_t    poll_name = ngx_string("poll");
108
110
 
109
111
 
110
112
static ngx_int_t
111
 
ngx_poll_add_event(ngx_event_t *ev, int event, u_int flags)
 
113
ngx_poll_add_event(ngx_event_t *ev, ngx_int_t event, ngx_uint_t flags)
112
114
{
113
115
    ngx_event_t       *e;
114
116
    ngx_connection_t  *c;
119
121
 
120
122
    if (ev->index != NGX_INVALID_INDEX) {
121
123
        ngx_log_error(NGX_LOG_ALERT, ev->log, 0,
122
 
                      "poll event fd:%d ev:%d is already set", c->fd, event);
 
124
                      "poll event fd:%d ev:%i is already set", c->fd, event);
123
125
        return NGX_OK;
124
126
    }
125
127
 
137
139
    }
138
140
 
139
141
    ngx_log_debug2(NGX_LOG_DEBUG_EVENT, ev->log, 0,
140
 
                   "poll add event: fd:%d ev:%d", c->fd, event);
 
142
                   "poll add event: fd:%d ev:%i", c->fd, event);
141
143
 
142
144
    if (e == NULL || e->index == NGX_INVALID_INDEX) {
143
145
        event_list[nevents].fd = c->fd;
144
 
        event_list[nevents].events = event;
 
146
        event_list[nevents].events = (short) event;
145
147
        event_list[nevents].revents = 0;
146
148
 
147
149
        ev->index = nevents;
149
151
 
150
152
    } else {
151
153
        ngx_log_debug1(NGX_LOG_DEBUG_EVENT, ev->log, 0,
152
 
                       "poll add index: %d", e->index);
 
154
                       "poll add index: %i", e->index);
153
155
 
154
 
        event_list[e->index].events |= event;
 
156
        event_list[e->index].events |= (short) event;
155
157
        ev->index = e->index;
156
158
    }
157
159
 
160
162
 
161
163
 
162
164
static ngx_int_t
163
 
ngx_poll_del_event(ngx_event_t *ev, int event, u_int flags)
 
165
ngx_poll_del_event(ngx_event_t *ev, ngx_int_t event, ngx_uint_t flags)
164
166
{
165
167
    ngx_event_t       *e;
166
168
    ngx_connection_t  *c;
171
173
 
172
174
    if (ev->index == NGX_INVALID_INDEX) {
173
175
        ngx_log_error(NGX_LOG_ALERT, ev->log, 0,
174
 
                      "poll event fd:%d ev:%d is already deleted",
 
176
                      "poll event fd:%d ev:%i is already deleted",
175
177
                      c->fd, event);
176
178
        return NGX_OK;
177
179
    }
190
192
    }
191
193
 
192
194
    ngx_log_debug2(NGX_LOG_DEBUG_EVENT, ev->log, 0,
193
 
                   "poll del event: fd:%d ev:%d", c->fd, event);
 
195
                   "poll del event: fd:%d ev:%i", c->fd, event);
194
196
 
195
197
    if (e == NULL || e->index == NGX_INVALID_INDEX) {
196
198
        nevents--;
197
199
 
198
 
        if (ev->index < (u_int) nevents) {
 
200
        if (ev->index < (ngx_uint_t) nevents) {
199
201
 
200
202
            ngx_log_debug2(NGX_LOG_DEBUG_EVENT, ev->log, 0,
201
 
                           "index: copy event %d to %d", nevents, ev->index);
 
203
                           "index: copy event %ui to %i", nevents, ev->index);
202
204
 
203
205
            event_list[ev->index] = event_list[nevents];
204
206
 
209
211
                              "unexpected last event");
210
212
 
211
213
            } else {
212
 
                if (c->read->index == (u_int) nevents) {
 
214
                if (c->read->index == (ngx_uint_t) nevents) {
213
215
                    c->read->index = ev->index;
214
216
                }
215
217
 
216
 
                if (c->write->index == (u_int) nevents) {
 
218
                if (c->write->index == (ngx_uint_t) nevents) {
217
219
                    c->write->index = ev->index;
218
220
                }
219
221
            }
221
223
 
222
224
    } else {
223
225
        ngx_log_debug1(NGX_LOG_DEBUG_EVENT, ev->log, 0,
224
 
                       "poll del index: %d", e->index);
 
226
                       "poll del index: %i", e->index);
225
227
 
226
 
        event_list[e->index].events &= ~event;
 
228
        event_list[e->index].events &= (short) ~event;
227
229
    }
228
230
 
229
231
    ev->index = NGX_INVALID_INDEX;