Mercurial > hg > nginx
comparison src/os/unix/ngx_freebsd_init.c @ 373:018569a8f09c
nginx-0.0.7-2004-06-30-19:30:41 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Wed, 30 Jun 2004 15:30:41 +0000 |
parents | 446782c909b3 |
children | b670db10cbbd |
comparison
equal
deleted
inserted
replaced
372:c9fdfccebc49 | 373:018569a8f09c |
---|---|
6 /* FreeBSD 3.4 at least */ | 6 /* FreeBSD 3.4 at least */ |
7 char ngx_freebsd_kern_ostype[20]; | 7 char ngx_freebsd_kern_ostype[20]; |
8 char ngx_freebsd_kern_osrelease[20]; | 8 char ngx_freebsd_kern_osrelease[20]; |
9 int ngx_freebsd_kern_osreldate; | 9 int ngx_freebsd_kern_osreldate; |
10 int ngx_freebsd_hw_ncpu; | 10 int ngx_freebsd_hw_ncpu; |
11 int ngx_freebsd_machdep_hlt_logical_cpus; | |
11 int ngx_freebsd_net_inet_tcp_sendspace; | 12 int ngx_freebsd_net_inet_tcp_sendspace; |
12 int ngx_freebsd_sendfile_nbytes_bug; | 13 int ngx_freebsd_sendfile_nbytes_bug; |
13 int ngx_freebsd_use_tcp_nopush; | 14 int ngx_freebsd_use_tcp_nopush; |
14 | 15 |
15 /* FreeBSD 5.0 */ | 16 /* FreeBSD 5.0 */ |
38 | 39 |
39 | 40 |
40 sysctl_t sysctls[] = { | 41 sysctl_t sysctls[] = { |
41 {"hw.ncpu", | 42 {"hw.ncpu", |
42 &ngx_freebsd_hw_ncpu, | 43 &ngx_freebsd_hw_ncpu, |
44 sizeof(int)}, | |
45 | |
46 {"machdep.hlt_logical_cpus", | |
47 &ngx_freebsd_machdep_hlt_logical_cpus, | |
43 sizeof(int)}, | 48 sizeof(int)}, |
44 | 49 |
45 {"net.inet.tcp.sendspace", | 50 {"net.inet.tcp.sendspace", |
46 &ngx_freebsd_net_inet_tcp_sendspace, | 51 &ngx_freebsd_net_inet_tcp_sendspace, |
47 sizeof(int)}, | 52 sizeof(int)}, |
164 size = sysctls[i].size; | 169 size = sysctls[i].size; |
165 if (sysctlbyname(sysctls[i].name, sysctls[i].value, &size, NULL, 0) | 170 if (sysctlbyname(sysctls[i].name, sysctls[i].value, &size, NULL, 0) |
166 == -1) { | 171 == -1) { |
167 err = errno; | 172 err = errno; |
168 if (err != NGX_ENOENT) { | 173 if (err != NGX_ENOENT) { |
174 if (sysctls[i].value == &ngx_freebsd_machdep_hlt_logical_cpus) { | |
175 continue; | |
176 } | |
177 | |
169 ngx_log_error(NGX_LOG_ALERT, log, err, | 178 ngx_log_error(NGX_LOG_ALERT, log, err, |
170 "sysctlbyname(%s) failed", sysctls[i].name); | 179 "sysctlbyname(%s) failed", sysctls[i].name); |
171 return NGX_ERROR; | 180 return NGX_ERROR; |
172 } | 181 } |
173 | 182 |
175 ngx_log_error(NGX_LOG_INFO, log, 0, "%s: %d", | 184 ngx_log_error(NGX_LOG_INFO, log, 0, "%s: %d", |
176 sysctls[i].name, *sysctls[i].value); | 185 sysctls[i].name, *sysctls[i].value); |
177 } | 186 } |
178 } | 187 } |
179 | 188 |
189 if (ngx_freebsd_machdep_hlt_logical_cpus) { | |
190 ngx_ncpu = ngx_freebsd_hw_ncpu / 2; | |
191 } else { | |
192 ngx_ncpu = ngx_freebsd_hw_ncpu; | |
193 } | |
194 | |
180 return ngx_posix_init(log); | 195 return ngx_posix_init(log); |
181 } | 196 } |