]> git.kaiwu.me - nginx.git/log
nginx.git
10 years agoUpstream: times to obtain header/response are stored as ngx_msec_t.
Ruslan Ermilov [Fri, 15 May 2015 22:31:04 +0000 (01:31 +0300)]
Upstream: times to obtain header/response are stored as ngx_msec_t.

11 years agoEvents: ngx_event_t size reduction by grouping bit fields.
Igor Sysoev [Fri, 15 May 2015 14:15:33 +0000 (17:15 +0300)]
Events: ngx_event_t size reduction by grouping bit fields.

11 years agoEvents: made a failure to create a notification channel non-fatal.
Ruslan Ermilov [Wed, 6 May 2015 14:04:00 +0000 (17:04 +0300)]
Events: made a failure to create a notification channel non-fatal.

This may happen if eventfd() returns ENOSYS, notably seen on CentOS 5.4.
Such a failure will now just disable the notification mechanism and let
the callers cope with it, instead of failing to start worker processes.
If thread pools are not configured, this can safely be ignored.

11 years agoConfigure: handle deprecated options.
Ruslan Ermilov [Wed, 29 Apr 2015 11:59:02 +0000 (14:59 +0300)]
Configure: handle deprecated options.

Removed the deprecated --without-http_limit_zone_module option.
Deprecated the --with-imap and --with-imap_ssl_module options.

11 years agoRemoved the deprecated "imap" directive.
Ruslan Ermilov [Wed, 29 Apr 2015 10:53:24 +0000 (13:53 +0300)]
Removed the deprecated "imap" directive.

11 years agoRemoved the deprecated "so_keepalive" directive.
Ruslan Ermilov [Wed, 29 Apr 2015 10:53:08 +0000 (13:53 +0300)]
Removed the deprecated "so_keepalive" directive.

11 years agoRemoved deprecated HTTP directives.
Ruslan Ermilov [Wed, 29 Apr 2015 10:52:49 +0000 (13:52 +0300)]
Removed deprecated HTTP directives.

11 years agoRemoved the deprecated "connections" directive.
Ruslan Ermilov [Wed, 29 Apr 2015 10:52:37 +0000 (13:52 +0300)]
Removed the deprecated "connections" directive.

11 years agoFixed overflow detection in ngx_inet_addr().
Valentin Bartenev [Tue, 28 Apr 2015 15:55:03 +0000 (18:55 +0300)]
Fixed overflow detection in ngx_inet_addr().

Overflow detection of the last octet might not work.

Reported by Sergey Polovko.

11 years agoVersion bump.
Valentin Bartenev [Tue, 28 Apr 2015 15:54:48 +0000 (18:54 +0300)]
Version bump.

11 years agorelease-1.9.0 tag
Maxim Dounin [Tue, 28 Apr 2015 15:31:18 +0000 (18:31 +0300)]
release-1.9.0 tag

11 years agonginx-1.9.0-RELEASE release-1.9.0
Maxim Dounin [Tue, 28 Apr 2015 15:31:17 +0000 (18:31 +0300)]
nginx-1.9.0-RELEASE

11 years agoAdded stream module to win32 builds.
Maxim Dounin [Mon, 27 Apr 2015 15:51:18 +0000 (18:51 +0300)]
Added stream module to win32 builds.

11 years agoWin32: shared memory base addresses and remapping.
Maxim Dounin [Mon, 27 Apr 2015 15:25:42 +0000 (18:25 +0300)]
Win32: shared memory base addresses and remapping.

Two mechanisms are implemented to make it possible to store pointers
in shared memory on Windows, in particular on Windows Vista and later
versions with ASLR:

- The ngx_shm_remap() function added to allow remapping of a shared memory
  zone to the address originally used for it in the master process.  While
  important, it doesn't solve the problem by itself as in many cases it's
  not possible to use the address because of conflicts with other
  allocations.

- We now create mappings at the same address in all processes by starting
  mappings at predefined addresses normally unused by newborn processes.

These two mechanisms combined allow to use shared memory on Windows
almost without problems, including reloads.

Based on the patch by Sergey Brester:
http://mailman.nginx.org/pipermail/nginx-devel/2015-April/006836.html

11 years agoWin32: fixed shm.handle loss on reload.
Maxim Dounin [Mon, 27 Apr 2015 00:44:30 +0000 (03:44 +0300)]
Win32: fixed shm.handle loss on reload.

11 years agoCore: fixed nginx_shared_zone name.
Maxim Dounin [Mon, 27 Apr 2015 00:44:03 +0000 (03:44 +0300)]
Core: fixed nginx_shared_zone name.

11 years agoMail: error_log support.
Vladimir Homutov [Fri, 20 Feb 2015 12:31:37 +0000 (15:31 +0300)]
Mail: error_log support.

11 years agoCore: the ngx_set_connection_log() macro.
Vladimir Homutov [Sat, 25 Apr 2015 19:44:02 +0000 (22:44 +0300)]
Core: the ngx_set_connection_log() macro.

The http and stream versions of this macro were identical.

11 years agoMerge proxy_protocol setting of listen directives.
Roman Arutyunyan [Fri, 24 Apr 2015 07:54:06 +0000 (10:54 +0300)]
Merge proxy_protocol setting of listen directives.

It's now enough to specify proxy_protocol option in one listen directive to
enable it in all servers listening on the same address/port.  Previously,
the setting from the first directive was always used.

11 years agoRemoved the "worker_rlimit_sigpending" directive.
Ruslan Ermilov [Thu, 23 Apr 2015 11:26:11 +0000 (14:26 +0300)]
Removed the "worker_rlimit_sigpending" directive.

It was only needed by the just removed rtsig module.

11 years agoRemoved the obsolete rtsig module.
Ruslan Ermilov [Thu, 23 Apr 2015 11:17:40 +0000 (14:17 +0300)]
Removed the obsolete rtsig module.

11 years agoRemoved the obsolete aio module.
Ruslan Ermilov [Wed, 22 Apr 2015 15:57:32 +0000 (18:57 +0300)]
Removed the obsolete aio module.

11 years agoStream: prevent repeated event notifications after eof.
Roman Arutyunyan [Wed, 22 Apr 2015 16:55:04 +0000 (19:55 +0300)]
Stream: prevent repeated event notifications after eof.

When client or upstream connection is closed, level-triggered read event
remained active until the end of the session leading to cpu hog.  Now the flag
NGX_CLOSE_EVENT is used to unschedule the event.

11 years agoUpstream: allow multiple upstreams to use the same shared zone.
Ruslan Ermilov [Wed, 22 Apr 2015 15:37:34 +0000 (18:37 +0300)]
Upstream: allow multiple upstreams to use the same shared zone.

11 years agoMemcached: enabled ranges.
Martin Mlynář [Tue, 21 Apr 2015 19:04:36 +0000 (21:04 +0200)]
Memcached: enabled ranges.

11 years agoUpstream: simplified ip_hash and hash peer selection code.
Ruslan Ermilov [Tue, 21 Apr 2015 16:09:04 +0000 (19:09 +0300)]
Upstream: simplified ip_hash and hash peer selection code.

Now that peers are stored as a list, the weighted and unweighted
cases became nearly identical.

11 years agoFixed building --with-stream when precompiled headers are used.
Sergey Kandaurov [Mon, 20 Apr 2015 14:36:51 +0000 (17:36 +0300)]
Fixed building --with-stream when precompiled headers are used.

11 years agoLimit req: removed check for unknown limit_req_zone.
Sergey Kandaurov [Mon, 20 Apr 2015 13:54:41 +0000 (16:54 +0300)]
Limit req: removed check for unknown limit_req_zone.

With 48b3d5ddfb03, it's possible to specify limit_req_zone after limit_req.

11 years agoCore: allow shared memory size to be declared after a reference.
Sergey Kandaurov [Mon, 20 Apr 2015 13:53:04 +0000 (16:53 +0300)]
Core: allow shared memory size to be declared after a reference.

For example, this fixes the case when "proxy_cache_path" is specified
after "proxy_cache" that references it.

11 years agoStream: port from NGINX+.
Ruslan Ermilov [Mon, 20 Apr 2015 10:05:11 +0000 (13:05 +0300)]
Stream: port from NGINX+.

11 years agoUpstream: fixed unlocked access to peer->conns.
Ruslan Ermilov [Sun, 19 Apr 2015 19:41:09 +0000 (22:41 +0300)]
Upstream: fixed unlocked access to peer->conns.

11 years agoReplaced the remaining NGX_OLD_THREADS check with NGX_WIN32.
Ruslan Ermilov [Thu, 26 Mar 2015 11:20:51 +0000 (14:20 +0300)]
Replaced the remaining NGX_OLD_THREADS check with NGX_WIN32.

11 years agoRemoved NGX_OLD_THREADS from select and poll modules.
Ruslan Ermilov [Thu, 26 Mar 2015 11:20:07 +0000 (14:20 +0300)]
Removed NGX_OLD_THREADS from select and poll modules.

These modules can't be compiled on win32.

11 years agoRemoved "worker_threads" and "thread_stack_size" directives.
Ruslan Ermilov [Thu, 26 Mar 2015 11:15:17 +0000 (14:15 +0300)]
Removed "worker_threads" and "thread_stack_size" directives.

11 years agoRemoved unused thread-local-storage code.
Ruslan Ermilov [Thu, 26 Mar 2015 11:15:15 +0000 (14:15 +0300)]
Removed unused thread-local-storage code.

11 years agoRemoved ngx_threaded and related code.
Ruslan Ermilov [Thu, 26 Mar 2015 11:15:13 +0000 (14:15 +0300)]
Removed ngx_threaded and related code.

11 years agoUpstream: get rid of questionable micro-optimization in ip_hash.
Ruslan Ermilov [Thu, 16 Apr 2015 17:09:11 +0000 (20:09 +0300)]
Upstream: get rid of questionable micro-optimization in ip_hash.

If a peer was initially skipped due to max_fails, there's no reason
not to try it again if enough time has passed, and the next_upstream
logic is in action.

This also reduces diffs with NGINX Plus.

11 years agoCore: ensure that ngx_config.h is always included first.
Sergey Kandaurov [Thu, 16 Apr 2015 15:18:37 +0000 (18:18 +0300)]
Core: ensure that ngx_config.h is always included first.

This fixes compilation of various 3rd party modules when nginx is
configured with threads.

11 years agoVersion bump.
Maxim Dounin [Thu, 16 Apr 2015 14:26:19 +0000 (17:26 +0300)]
Version bump.

11 years agoUpstream: the "zone" directive.
Ruslan Ermilov [Tue, 14 Apr 2015 16:01:25 +0000 (19:01 +0300)]
Upstream: the "zone" directive.

Upstreams with the "zone" directive are kept in shared memory,
with a consistent view of all worker processes.

11 years agoUpstreams: locking.
Ruslan Ermilov [Tue, 14 Apr 2015 16:01:23 +0000 (19:01 +0300)]
Upstreams: locking.

11 years agoCore: read/write locks.
Ruslan Ermilov [Sat, 21 Mar 2015 11:05:08 +0000 (14:05 +0300)]
Core: read/write locks.

11 years agoUpstream: store peers as a linked list.
Ruslan Ermilov [Fri, 10 Apr 2015 11:48:36 +0000 (14:48 +0300)]
Upstream: store peers as a linked list.

This is an API change.

11 years agoUpstream: track the number of active connections to upstreams.
Ruslan Ermilov [Fri, 10 Apr 2015 10:16:23 +0000 (13:16 +0300)]
Upstream: track the number of active connections to upstreams.

This also simplifies the implementation of the least_conn module.

11 years agoFixed build, broken by 8b7f062a3fe6.
Ruslan Ermilov [Thu, 16 Apr 2015 12:05:40 +0000 (15:05 +0300)]
Fixed build, broken by 8b7f062a3fe6.

Casting a "const char *" to "char *" doesn't work on older gcc versions.

11 years agoCore: added OpenSSL version information to "nginx -V" output.
Vladimir Homutov [Thu, 16 Apr 2015 09:17:41 +0000 (12:17 +0300)]
Core: added OpenSSL version information to "nginx -V" output.

11 years agoVersion bump.
Vladimir Homutov [Thu, 16 Apr 2015 09:13:51 +0000 (12:13 +0300)]
Version bump.

11 years agorelease-1.7.12 tag
Maxim Dounin [Tue, 7 Apr 2015 15:35:33 +0000 (18:35 +0300)]
release-1.7.12 tag

11 years agonginx-1.7.12-RELEASE release-1.7.12
Maxim Dounin [Tue, 7 Apr 2015 15:35:33 +0000 (18:35 +0300)]
nginx-1.7.12-RELEASE

11 years agoCore: guard against spinlock usage without atomic ops.
Ruslan Ermilov [Thu, 26 Mar 2015 11:15:06 +0000 (14:15 +0300)]
Core: guard against spinlock usage without atomic ops.

The new thread pools code uses spinlocks.

11 years agoCore: limited levels of subdirectory hierarchy used for temp files.
Sergey Kandaurov [Mon, 6 Apr 2015 22:32:08 +0000 (01:32 +0300)]
Core: limited levels of subdirectory hierarchy used for temp files.

Similar to ngx_http_file_cache_set_slot(), the last component of file->name
with a fixed length of 10 bytes, as generated in ngx_create_temp_path(), is
used as a source for the names of intermediate subdirectories with each one
taking its own part.  Ensure that the sum of specified levels with slashes
fits into the length (ticket #731).

11 years agoCore: removed excessive initialization in ngx_conf_set_path_slot().
Sergey Kandaurov [Mon, 6 Apr 2015 22:32:07 +0000 (01:32 +0300)]
Core: removed excessive initialization in ngx_conf_set_path_slot().

Level hierarchy is pre-zeroed in ngx_pcalloc() of the surrounding ngx_path_t.

11 years agoCore: fixed error handling on ngx_conf_full_name() failure.
Sergey Kandaurov [Mon, 6 Apr 2015 22:32:05 +0000 (01:32 +0300)]
Core: fixed error handling on ngx_conf_full_name() failure.

11 years agoUpstream: abbreviated SSL handshake may interact badly with Nagle.
Ruslan Ermilov [Mon, 6 Apr 2015 21:07:04 +0000 (00:07 +0300)]
Upstream: abbreviated SSL handshake may interact badly with Nagle.

11 years agoRequest body: always flush buffers if request buffering is off.
Valentin Bartenev [Mon, 6 Apr 2015 16:20:36 +0000 (19:20 +0300)]
Request body: always flush buffers if request buffering is off.

This fixes unbuffered proxying to SSL backends, since it prevents
ngx_ssl_send_chain() from accumulation of request body in the SSL
buffer.

11 years agoUsed the correct type for the AIO preload handler return value.
Valentin Bartenev [Mon, 6 Apr 2015 08:22:24 +0000 (11:22 +0300)]
Used the correct type for the AIO preload handler return value.

11 years agoConfigure: style.
Maxim Dounin [Fri, 3 Apr 2015 15:20:57 +0000 (18:20 +0300)]
Configure: style.

11 years agoOCSP stapling: missing free calls.
Filipe da Silva [Wed, 1 Apr 2015 13:05:08 +0000 (15:05 +0200)]
OCSP stapling: missing free calls.

Missing call to X509_STORE_CTX_free when X509_STORE_CTX_init fails.
Missing call to OCSP_CERTID_free when OCSP_request_add0_id fails.
Possible leaks in vary particular scenariis of memory shortage.

11 years agoCache: added support for reading of the header in thread pools.
Valentin Bartenev [Wed, 1 Apr 2015 00:49:17 +0000 (03:49 +0300)]
Cache: added support for reading of the header in thread pools.

11 years agoFixed invalid access to complex value defined as an empty string.
Sergey Kandaurov [Tue, 31 Mar 2015 14:45:50 +0000 (17:45 +0300)]
Fixed invalid access to complex value defined as an empty string.

Found by Valgrind.

11 years agoEvents: fixed possible crash on start or reload.
Valentin Bartenev [Fri, 27 Mar 2015 18:19:20 +0000 (21:19 +0300)]
Events: fixed possible crash on start or reload.

The main thread could wake up and start processing the notify event
before the handler was set.

11 years agoEvents: made posted events macros safe.
Valentin Bartenev [Fri, 27 Mar 2015 16:57:15 +0000 (19:57 +0300)]
Events: made posted events macros safe.

11 years agoSPDY: always push pending data.
Valentin Bartenev [Mon, 23 Mar 2015 18:04:13 +0000 (21:04 +0300)]
SPDY: always push pending data.

This helps to avoid suboptimal behavior when a client waits for a control
frame or more data to increase window size, but the frames have been delayed
in the socket buffer.

The delays can be caused by bad interaction between Nagle's algorithm on
nginx side and delayed ACK on the client side or by TCP_CORK/TCP_NOPUSH
if SPDY was working without SSL and sendfile() was used.

The pushing code is now very similar to ngx_http_set_keepalive().

11 years agoSPDY: fixed error handling in ngx_http_spdy_send_output_queue().
Valentin Bartenev [Mon, 23 Mar 2015 17:47:46 +0000 (20:47 +0300)]
SPDY: fixed error handling in ngx_http_spdy_send_output_queue().

11 years agoVersion bump.
Maxim Dounin [Thu, 26 Mar 2015 14:36:39 +0000 (17:36 +0300)]
Version bump.

11 years agoProxy: fixed proxy_request_buffering and chunked with preread body.
Maxim Dounin [Wed, 25 Mar 2015 23:31:30 +0000 (02:31 +0300)]
Proxy: fixed proxy_request_buffering and chunked with preread body.

If any preread body bytes were sent in the first chain, chunk size was
incorrectly added before the whole chain, including header, resulting in
an invalid request sent to upstream.  Fixed to properly add chunk size
after the header.

11 years agorelease-1.7.11 tag
Maxim Dounin [Tue, 24 Mar 2015 15:45:34 +0000 (18:45 +0300)]
release-1.7.11 tag

11 years agonginx-1.7.11-RELEASE release-1.7.11
Maxim Dounin [Tue, 24 Mar 2015 15:45:34 +0000 (18:45 +0300)]
nginx-1.7.11-RELEASE

11 years agoUpstream: uwsgi_request_buffering, scgi_request_buffering.
Maxim Dounin [Mon, 23 Mar 2015 18:09:19 +0000 (21:09 +0300)]
Upstream: uwsgi_request_buffering, scgi_request_buffering.

11 years agoFastCGI: fastcgi_request_buffering.
Maxim Dounin [Mon, 23 Mar 2015 18:09:19 +0000 (21:09 +0300)]
FastCGI: fastcgi_request_buffering.

11 years agoProxy: proxy_request_buffering chunked support.
Maxim Dounin [Mon, 23 Mar 2015 18:09:19 +0000 (21:09 +0300)]
Proxy: proxy_request_buffering chunked support.

11 years agoRequest body: unbuffered reading.
Maxim Dounin [Mon, 23 Mar 2015 18:09:19 +0000 (21:09 +0300)]
Request body: unbuffered reading.

The r->request_body_no_buffering flag was introduced.  It instructs
client request body reading code to avoid reading the whole body, and
to call post_handler early instead.  The caller should use the
ngx_http_read_unbuffered_request_body() function to read remaining
parts of the body.

Upstream module is now able to use this mode, if configured with
the proxy_request_buffering directive.

11 years agoRequest body: filters support.
Maxim Dounin [Mon, 23 Mar 2015 18:09:19 +0000 (21:09 +0300)]
Request body: filters support.

11 years agoRequest body: moved request body writing to save filter.
Maxim Dounin [Mon, 23 Mar 2015 18:09:19 +0000 (21:09 +0300)]
Request body: moved request body writing to save filter.

11 years agoRequest body: free chain links in ngx_http_write_request_body().
Maxim Dounin [Mon, 23 Mar 2015 18:09:12 +0000 (21:09 +0300)]
Request body: free chain links in ngx_http_write_request_body().

11 years agoOutput chain: free chain links in ngx_chain_writer().
Maxim Dounin [Mon, 23 Mar 2015 18:09:05 +0000 (21:09 +0300)]
Output chain: free chain links in ngx_chain_writer().

11 years agoOutput chain: zero size buf alerts in ngx_chain_writer().
Maxim Dounin [Mon, 23 Mar 2015 17:56:58 +0000 (20:56 +0300)]
Output chain: zero size buf alerts in ngx_chain_writer().

Now we log a "zero size buf in chain writer" alert if we encounter a zero
sized buffer in ngx_chain_writer(), and skip the buffer.

11 years agoFormat specifier fixed for file size of buffers.
Maxim Dounin [Mon, 23 Mar 2015 16:28:54 +0000 (19:28 +0300)]
Format specifier fixed for file size of buffers.

11 years agoProxy: fixed proxy_set_body with proxy_cache.
Maxim Dounin [Mon, 23 Mar 2015 16:28:54 +0000 (19:28 +0300)]
Proxy: fixed proxy_set_body with proxy_cache.

If the last header evaluation resulted in an empty header, the e.skip flag
was set and was not reset when we've switched to evaluation of body_values.
This incorrectly resulted in body values being skipped instead of producing
some correct body as set by proxy_set_body.  Fix is to properly reset
the e.skip flag.

As the problem only appeared if the last potentially non-empty header
happened to be empty, it only manifested itself if proxy_set_body was used
with proxy_cache.

11 years agoThread pools: implemented graceful exiting of threads.
Valentin Bartenev [Mon, 23 Mar 2015 14:51:21 +0000 (17:51 +0300)]
Thread pools: implemented graceful exiting of threads.

11 years agoThread pools: removed unused pointer to memory pool.
Valentin Bartenev [Mon, 23 Mar 2015 14:51:21 +0000 (17:51 +0300)]
Thread pools: removed unused pointer to memory pool.

No functional changes.

11 years agoThread pools: keep waiting tasks mutex in ngx_thread_pool_t.
Valentin Bartenev [Mon, 23 Mar 2015 14:51:21 +0000 (17:51 +0300)]
Thread pools: keep waiting tasks mutex in ngx_thread_pool_t.

It's not needed for completed tasks queue since the previous change.

No functional changes.

11 years agoThread pools: replaced completed tasks queue mutex with spinlock.
Valentin Bartenev [Mon, 23 Mar 2015 14:51:21 +0000 (17:51 +0300)]
Thread pools: replaced completed tasks queue mutex with spinlock.

11 years agoRemoved stub implementation of win32 mutexes.
Ruslan Ermilov [Mon, 23 Mar 2015 10:52:47 +0000 (13:52 +0300)]
Removed stub implementation of win32 mutexes.

11 years agoUpdated OpenSSL used for win32 builds.
Maxim Dounin [Sun, 22 Mar 2015 23:44:41 +0000 (02:44 +0300)]
Updated OpenSSL used for win32 builds.

11 years agoSSL: use of SSL_MODE_NO_AUTO_CHAIN.
Maxim Dounin [Sun, 22 Mar 2015 23:42:35 +0000 (02:42 +0300)]
SSL: use of SSL_MODE_NO_AUTO_CHAIN.

The SSL_MODE_NO_AUTO_CHAIN mode prevents OpenSSL from automatically
building a certificate chain on the fly if there is no certificate chain
explicitly provided.  Before this change, certificates provided via the
ssl_client_certificate and ssl_trusted_certificate directives were
used by OpenSSL to automatically build certificate chains, resulting
in unexpected (and in some cases unneeded) chains being sent to clients.

11 years agoSSL: avoid SSL_CTX_set_tmp_rsa_callback() call with LibreSSL.
Maxim Dounin [Sun, 22 Mar 2015 23:42:34 +0000 (02:42 +0300)]
SSL: avoid SSL_CTX_set_tmp_rsa_callback() call with LibreSSL.

LibreSSL removed support for export ciphers and a call to
SSL_CTX_set_tmp_rsa_callback() results in an error left in the error
queue.  This caused alerts "ignoring stale global SSL error (...called
a function you should not call) while SSL handshaking" on a first connection
in each worker process.

11 years agoSSL: clear protocol options.
Maxim Dounin [Sun, 22 Mar 2015 23:42:32 +0000 (02:42 +0300)]
SSL: clear protocol options.

LibreSSL 2.1.1+ started to set SSL_OP_NO_SSLv3 option by default on
new contexts.  This makes sure to clear it to make it possible to use SSLv3
with LibreSSL if enabled in nginx config.

Prodded by Kuramoto Eiji.

11 years agoCore: added cyclic memory buffer support for error_log.
Valentin Bartenev [Thu, 19 Mar 2015 16:29:43 +0000 (19:29 +0300)]
Core: added cyclic memory buffer support for error_log.

Example of usage:

  error_log memory:16m debug;

This allows to configure debug logging with minimum impact on performance.
It's especially useful when rare crashes are experienced under high load.

The log can be extracted from a coredump using the following gdb script:

  set $log = ngx_cycle->log

  while $log->writer != ngx_log_memory_writer
      set $log = $log->next
  end

  set $buf = (ngx_log_memory_buf_t *) $log->wdata
  dump binary memory debug_log.txt $buf->start $buf->end

11 years agoRemoved busy locks.
Ruslan Ermilov [Fri, 20 Mar 2015 03:45:32 +0000 (06:45 +0300)]
Removed busy locks.

11 years agoRemoved ngx_connection_t.lock.
Ruslan Ermilov [Fri, 20 Mar 2015 03:43:19 +0000 (06:43 +0300)]
Removed ngx_connection_t.lock.

11 years agoRemoved unix ngx_threaded and related ngx_process_changes.
Ruslan Ermilov [Fri, 20 Mar 2015 03:43:19 +0000 (06:43 +0300)]
Removed unix ngx_threaded and related ngx_process_changes.

11 years agoRemoved old pthread implementation.
Ruslan Ermilov [Fri, 20 Mar 2015 03:43:19 +0000 (06:43 +0300)]
Removed old pthread implementation.

11 years agoRemoved old FreeBSD rfork() thread implementation.
Ruslan Ermilov [Fri, 20 Mar 2015 03:43:19 +0000 (06:43 +0300)]
Removed old FreeBSD rfork() thread implementation.

11 years agoThread pools: silence warning on process exit.
Ruslan Ermilov [Thu, 19 Mar 2015 20:20:18 +0000 (23:20 +0300)]
Thread pools: silence warning on process exit.

Work around pthread_cond_destroy() and pthread_mutex_destroy() returning
EBUSY.  A proper solution would be to ensure all threads are terminated.

11 years agoThread pools: fixed the waiting tasks accounting.
Ruslan Ermilov [Thu, 19 Mar 2015 10:00:48 +0000 (13:00 +0300)]
Thread pools: fixed the waiting tasks accounting.

Behave like POSIX semaphores.  If N worker threads are waiting for tasks,
at least that number of tasks should be allowed to be put into the queue.

11 years agoThread pools: keep waiting tasks counter in ngx_thread_pool_t.
Ruslan Ermilov [Thu, 19 Mar 2015 20:19:35 +0000 (23:19 +0300)]
Thread pools: keep waiting tasks counter in ngx_thread_pool_t.

It's not needed for completed tasks queue.

No functional changes.

11 years agoSPDY: fixed format specifier in logging.
Xiaochen Wang [Sun, 15 Mar 2015 13:46:21 +0000 (21:46 +0800)]
SPDY: fixed format specifier in logging.

11 years agoAdded support for offloading Linux sendfile() in thread pools.
Valentin Bartenev [Sat, 14 Mar 2015 14:37:30 +0000 (17:37 +0300)]
Added support for offloading Linux sendfile() in thread pools.

11 years agoAdded support for offloading read() in thread pools.
Valentin Bartenev [Sat, 14 Mar 2015 14:37:25 +0000 (17:37 +0300)]
Added support for offloading read() in thread pools.