Welcome! Log In Create A New Profile

Advanced

[nginx] Events: removed broken thread support from posted events.

Valentin Bartenev
September 01, 2014 10:24AM
details: http://hg.nginx.org/nginx/rev/3377f9459e99
branches:
changeset: 5820:3377f9459e99
user: Valentin Bartenev <vbart@nginx.com>
date: Mon Sep 01 18:20:03 2014 +0400
description:
Events: removed broken thread support from posted events.

It's mostly dead code. And the idea of thread support for this task has
been deprecated.

diffstat:

src/core/ngx_connection.c | 25 +----
src/core/ngx_resolver.c | 11 --
src/event/modules/ngx_devpoll_module.c | 28 +----
src/event/modules/ngx_epoll_module.c | 26 +---
src/event/modules/ngx_eventport_module.c | 28 +----
src/event/modules/ngx_kqueue_module.c | 29 +----
src/event/modules/ngx_poll_module.c | 28 +----
src/event/modules/ngx_rtsig_module.c | 34 +----
src/event/modules/ngx_select_module.c | 11 +-
src/event/modules/ngx_win32_select_module.c | 11 +-
src/event/ngx_event.c | 22 +----
src/event/ngx_event.h | 29 -----
src/event/ngx_event_accept.c | 7 -
src/event/ngx_event_connect.c | 11 --
src/event/ngx_event_mutex.c | 2 +-
src/event/ngx_event_posted.c | 144 +---------------------------
src/event/ngx_event_posted.h | 30 +----
src/event/ngx_event_timer.c | 30 -----
src/os/unix/ngx_channel.c | 7 -
src/os/unix/ngx_process_cycle.c | 9 +-
20 files changed, 66 insertions(+), 456 deletions(-)

diffs (truncated from 1018 to 300 lines):

diff -r 8e7ee4c70a3c -r 3377f9459e99 src/core/ngx_connection.c
--- a/src/core/ngx_connection.c Mon Sep 01 17:50:59 2014 +0400
+++ b/src/core/ngx_connection.c Mon Sep 01 18:20:03 2014 +0400
@@ -951,7 +951,9 @@ ngx_close_connection(ngx_connection_t *c
* before we clean the connection
*/

- ngx_mutex_lock(ngx_posted_events_mutex);
+ ngx_unlock(&c->lock);
+
+#endif

if (c->read->prev) {
ngx_delete_posted_event(c->read);
@@ -964,27 +966,6 @@ ngx_close_connection(ngx_connection_t *c
c->read->closed = 1;
c->write->closed = 1;

- ngx_unlock(&c->lock);
- c->read->locked = 0;
- c->write->locked = 0;
-
- ngx_mutex_unlock(ngx_posted_events_mutex);
-
-#else
-
- if (c->read->prev) {
- ngx_delete_posted_event(c->read);
- }
-
- if (c->write->prev) {
- ngx_delete_posted_event(c->write);
- }
-
- c->read->closed = 1;
- c->write->closed = 1;
-
-#endif
-
ngx_reusable_connection(c, 0);

log_error = c->log_error;
diff -r 8e7ee4c70a3c -r 3377f9459e99 src/core/ngx_resolver.c
--- a/src/core/ngx_resolver.c Mon Sep 01 17:50:59 2014 +0400
+++ b/src/core/ngx_resolver.c Mon Sep 01 18:20:03 2014 +0400
@@ -3082,17 +3082,6 @@ ngx_udp_connect(ngx_udp_connection_t *uc

c->number = ngx_atomic_fetch_add(ngx_connection_counter, 1);

-#if (NGX_THREADS)
-
- /* TODO: lock event when call completion handler */
-
- rev->lock = &c->lock;
- wev->lock = &c->lock;
- rev->own_lock = &c->lock;
- wev->own_lock = &c->lock;
-
-#endif
-
ngx_log_debug3(NGX_LOG_DEBUG_EVENT, &uc->log, 0,
"connect to %V, fd:%d #%uA", &uc->server, s, c->number);

diff -r 8e7ee4c70a3c -r 3377f9459e99 src/event/modules/ngx_devpoll_module.c
--- a/src/event/modules/ngx_devpoll_module.c Mon Sep 01 17:50:59 2014 +0400
+++ b/src/event/modules/ngx_devpoll_module.c Mon Sep 01 18:20:03 2014 +0400
@@ -404,8 +404,6 @@ ngx_devpoll_process_events(ngx_cycle_t *
return NGX_ERROR;
}

- ngx_mutex_lock(ngx_posted_events_mutex);
-
for (i = 0; i < events; i++) {

fd = event_list[i].fd;
@@ -495,19 +493,13 @@ ngx_devpoll_process_events(ngx_cycle_t *
rev = c->read;

if ((revents & POLLIN) && rev->active) {
-
- if ((flags & NGX_POST_THREAD_EVENTS) && !rev->accept) {
- rev->posted_ready = 1;
-
- } else {
- rev->ready = 1;
- }
+ rev->ready = 1;

if (flags & NGX_POST_EVENTS) {
- queue = (ngx_event_t **) (rev->accept ?
- &ngx_posted_accept_events : &ngx_posted_events);
+ queue = rev->accept ? &ngx_posted_accept_events
+ : &ngx_posted_events;

- ngx_locked_post_event(rev, queue);
+ ngx_post_event(rev, queue);

} else {
instance = rev->instance;
@@ -523,16 +515,10 @@ ngx_devpoll_process_events(ngx_cycle_t *
wev = c->write;

if ((revents & POLLOUT) && wev->active) {
-
- if (flags & NGX_POST_THREAD_EVENTS) {
- wev->posted_ready = 1;
-
- } else {
- wev->ready = 1;
- }
+ wev->ready = 1;

if (flags & NGX_POST_EVENTS) {
- ngx_locked_post_event(wev, &ngx_posted_events);
+ ngx_post_event(wev, &ngx_posted_events);

} else {
wev->handler(wev);
@@ -540,8 +526,6 @@ ngx_devpoll_process_events(ngx_cycle_t *
}
}

- ngx_mutex_unlock(ngx_posted_events_mutex);
-
return NGX_OK;
}

diff -r 8e7ee4c70a3c -r 3377f9459e99 src/event/modules/ngx_epoll_module.c
--- a/src/event/modules/ngx_epoll_module.c Mon Sep 01 17:50:59 2014 +0400
+++ b/src/event/modules/ngx_epoll_module.c Mon Sep 01 18:20:03 2014 +0400
@@ -612,8 +612,6 @@ ngx_epoll_process_events(ngx_cycle_t *cy
return NGX_ERROR;
}

- ngx_mutex_lock(ngx_posted_events_mutex);
-
for (i = 0; i < events; i++) {
c = event_list[i].data.ptr;

@@ -674,18 +672,13 @@ ngx_epoll_process_events(ngx_cycle_t *cy
}
#endif

- if ((flags & NGX_POST_THREAD_EVENTS) && !rev->accept) {
- rev->posted_ready = 1;
-
- } else {
- rev->ready = 1;
- }
+ rev->ready = 1;

if (flags & NGX_POST_EVENTS) {
- queue = (ngx_event_t **) (rev->accept ?
- &ngx_posted_accept_events : &ngx_posted_events);
+ queue = rev->accept ? &ngx_posted_accept_events
+ : &ngx_posted_events;

- ngx_locked_post_event(rev, queue);
+ ngx_post_event(rev, queue);

} else {
rev->handler(rev);
@@ -708,15 +701,10 @@ ngx_epoll_process_events(ngx_cycle_t *cy
continue;
}

- if (flags & NGX_POST_THREAD_EVENTS) {
- wev->posted_ready = 1;
-
- } else {
- wev->ready = 1;
- }
+ wev->ready = 1;

if (flags & NGX_POST_EVENTS) {
- ngx_locked_post_event(wev, &ngx_posted_events);
+ ngx_post_event(wev, &ngx_posted_events);

} else {
wev->handler(wev);
@@ -724,8 +712,6 @@ ngx_epoll_process_events(ngx_cycle_t *cy
}
}

- ngx_mutex_unlock(ngx_posted_events_mutex);
-
return NGX_OK;
}

diff -r 8e7ee4c70a3c -r 3377f9459e99 src/event/modules/ngx_eventport_module.c
--- a/src/event/modules/ngx_eventport_module.c Mon Sep 01 17:50:59 2014 +0400
+++ b/src/event/modules/ngx_eventport_module.c Mon Sep 01 18:20:03 2014 +0400
@@ -466,8 +466,6 @@ ngx_eventport_process_events(ngx_cycle_t
return NGX_ERROR;
}

- ngx_mutex_lock(ngx_posted_events_mutex);
-
for (i = 0; i < events; i++) {

if (event_list[i].portev_source == PORT_SOURCE_TIMER) {
@@ -534,19 +532,13 @@ ngx_eventport_process_events(ngx_cycle_t
wev->active = 0;

if (revents & POLLIN) {
-
- if ((flags & NGX_POST_THREAD_EVENTS) && !rev->accept) {
- rev->posted_ready = 1;
-
- } else {
- rev->ready = 1;
- }
+ rev->ready = 1;

if (flags & NGX_POST_EVENTS) {
- queue = (ngx_event_t **) (rev->accept ?
- &ngx_posted_accept_events : &ngx_posted_events);
+ queue = rev->accept ? &ngx_posted_accept_events
+ : &ngx_posted_events;

- ngx_locked_post_event(rev, queue);
+ ngx_post_event(rev, queue);

} else {
rev->handler(rev);
@@ -574,16 +566,10 @@ ngx_eventport_process_events(ngx_cycle_t
}

if (revents & POLLOUT) {
-
- if (flags & NGX_POST_THREAD_EVENTS) {
- wev->posted_ready = 1;
-
- } else {
- wev->ready = 1;
- }
+ wev->ready = 1;

if (flags & NGX_POST_EVENTS) {
- ngx_locked_post_event(wev, &ngx_posted_events);
+ ngx_post_event(wev, &ngx_posted_events);

} else {
wev->handler(wev);
@@ -600,8 +586,6 @@ ngx_eventport_process_events(ngx_cycle_t
}
}

- ngx_mutex_unlock(ngx_posted_events_mutex);
-
return NGX_OK;
}

diff -r 8e7ee4c70a3c -r 3377f9459e99 src/event/modules/ngx_kqueue_module.c
--- a/src/event/modules/ngx_kqueue_module.c Mon Sep 01 17:50:59 2014 +0400
+++ b/src/event/modules/ngx_kqueue_module.c Mon Sep 01 18:20:03 2014 +0400
@@ -573,8 +573,6 @@ ngx_kqueue_process_events(ngx_cycle_t *c
return NGX_ERROR;
}

- ngx_mutex_lock(ngx_posted_events_mutex);
-
for (i = 0; i < events; i++) {

ngx_kqueue_dump_event(cycle->log, &event_list[i]);
@@ -626,24 +624,6 @@ ngx_kqueue_process_events(ngx_cycle_t *c
ev->active = 0;
}

-#if (NGX_THREADS)
-
- if ((flags & NGX_POST_THREAD_EVENTS) && !ev->accept) {
- ev->posted_ready = 1;
- ev->posted_available = event_list[i].data;
-
- if (event_list[i].flags & EV_EOF) {
- ev->posted_eof = 1;
- ev->posted_errno = event_list[i].fflags;
- }
-
- ngx_locked_post_event(ev, &ngx_posted_events);
-
- continue;
- }
-
-#endif
-
ev->available = event_list[i].data;

if (event_list[i].flags & EV_EOF) {
@@ -674,9 +654,10 @@ ngx_kqueue_process_events(ngx_cycle_t *c
}

if (flags & NGX_POST_EVENTS) {
- queue = (ngx_event_t **) (ev->accept ? &ngx_posted_accept_events:
- &ngx_posted_events);
- ngx_locked_post_event(ev, queue);
+ queue = ev->accept ? &ngx_posted_accept_events
+ : &ngx_posted_events;
+

_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[nginx] Events: removed broken thread support from posted events.

Valentin Bartenev 601 September 01, 2014 10:24AM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 119
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready