Mercurial > hg > nginx
view src/os/unix/ngx_thread_cond.c @ 7670:ccb5ff87ab3e
Cache: introduced min_free cache clearing.
Clearing cache based on free space left on a file system is
expected to allow better disk utilization in some cases, notably
when disk space might be also used for something other than nginx
cache (including nginx own temporary files) and while loading
cache (when cache size might be inaccurate for a while, effectively
disabling max_size cache clearing).
Based on a patch by Adam Bambuch.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Mon, 22 Jun 2020 18:03:00 +0300 |
parents | 022ea0d17177 |
children |
line wrap: on
line source
/* * Copyright (C) Igor Sysoev * Copyright (C) Nginx, Inc. */ #include <ngx_config.h> #include <ngx_core.h> ngx_int_t ngx_thread_cond_create(ngx_thread_cond_t *cond, ngx_log_t *log) { ngx_err_t err; err = pthread_cond_init(cond, NULL); if (err == 0) { return NGX_OK; } ngx_log_error(NGX_LOG_EMERG, log, err, "pthread_cond_init() failed"); return NGX_ERROR; } ngx_int_t ngx_thread_cond_destroy(ngx_thread_cond_t *cond, ngx_log_t *log) { ngx_err_t err; err = pthread_cond_destroy(cond); if (err == 0) { return NGX_OK; } ngx_log_error(NGX_LOG_EMERG, log, err, "pthread_cond_destroy() failed"); return NGX_ERROR; } ngx_int_t ngx_thread_cond_signal(ngx_thread_cond_t *cond, ngx_log_t *log) { ngx_err_t err; err = pthread_cond_signal(cond); if (err == 0) { return NGX_OK; } ngx_log_error(NGX_LOG_EMERG, log, err, "pthread_cond_signal() failed"); return NGX_ERROR; } ngx_int_t ngx_thread_cond_wait(ngx_thread_cond_t *cond, ngx_thread_mutex_t *mtx, ngx_log_t *log) { ngx_err_t err; err = pthread_cond_wait(cond, mtx); #if 0 ngx_time_update(); #endif if (err == 0) { return NGX_OK; } ngx_log_error(NGX_LOG_ALERT, log, err, "pthread_cond_wait() failed"); return NGX_ERROR; }