]> git.kaiwu.me - nginx.git/commitdiff
take MALLOC_OPTIONS=J into account in slab allocator
authorIgor Sysoev <igor@sysoev.ru>
Sat, 22 Dec 2007 11:06:53 +0000 (11:06 +0000)
committerIgor Sysoev <igor@sysoev.ru>
Sat, 22 Dec 2007 11:06:53 +0000 (11:06 +0000)
src/core/ngx_slab.c
src/os/unix/ngx_freebsd.h
src/os/unix/ngx_freebsd_init.c

index 9f63a91eb47b832b22c9a30ab5d9c752590c8c01..b187026d885067b01039b8b3236ae94e0fe8be9d 100644 (file)
 
 
 #if (NGX_DEBUG_MALLOC)
-#define ngx_slab_junk(p, size)  ngx_memset(p, 0xD0, size)
+
+#define ngx_slab_junk(p, size)     ngx_memset(p, 0xD0, size)
+
+#else
+
+#if (NGX_FREEBSD)
+
+#define ngx_slab_junk(p, size)                                                \
+    if (ngx_freebsd_debug_malloc)  ngx_memset(p, 0xD0, size)
+
 #else
+
 #define ngx_slab_junk(p, size)
+
+#endif
+
 #endif
 
 static ngx_slab_page_t *ngx_slab_alloc_pages(ngx_slab_pool_t *pool,
index f202f8f87a817facc4bdbf4d63fddf4b7c9943bf..c3be2bcfca820dc9ad9f0b247e8f0629ecc77d86 100644 (file)
 ngx_chain_t *ngx_freebsd_sendfile_chain(ngx_connection_t *c, ngx_chain_t *in,
     off_t limit);
 
-extern int     ngx_freebsd_kern_osreldate;
-extern int     ngx_freebsd_hw_ncpu;
-extern u_long  ngx_freebsd_net_inet_tcp_sendspace;
-extern int     ngx_freebsd_kern_ipc_zero_copy_send;
-
-extern ngx_uint_t ngx_freebsd_sendfile_nbytes_bug;
-extern ngx_uint_t ngx_freebsd_use_tcp_nopush;
+extern int         ngx_freebsd_kern_osreldate;
+extern int         ngx_freebsd_hw_ncpu;
+extern u_long      ngx_freebsd_net_inet_tcp_sendspace;
+extern int         ngx_freebsd_kern_ipc_zero_copy_send;
+
+extern ngx_uint_t  ngx_freebsd_sendfile_nbytes_bug;
+extern ngx_uint_t  ngx_freebsd_use_tcp_nopush;
+extern ngx_uint_t  ngx_freebsd_debug_malloc;
 
 
 #endif /* _NGX_FREEBSD_H_INCLUDED_ */
index 26499bd32a5e16470f3e2254ed64944643e4beb4..a2b4c57317954d8df4afdc573bb83bf92a79f21e 100644 (file)
@@ -23,8 +23,9 @@ int     ngx_freebsd_machdep_hlt_logical_cpus;
 int     ngx_freebsd_kern_ipc_zero_copy_send;
 
 
-ngx_uint_t ngx_freebsd_sendfile_nbytes_bug;
-ngx_uint_t ngx_freebsd_use_tcp_nopush;
+ngx_uint_t  ngx_freebsd_sendfile_nbytes_bug;
+ngx_uint_t  ngx_freebsd_use_tcp_nopush;
+ngx_uint_t  ngx_freebsd_debug_malloc;
 
 
 static ngx_os_io_t ngx_freebsd_io = {
@@ -86,6 +87,16 @@ ngx_debug_init()
     malloc_options = "J";
 #endif
 
+    ngx_freebsd_debug_malloc = 1;
+
+#else
+    char  *mo;
+
+    mo = getenv("MALLOC_OPTIONS");
+
+    if (mo && ngx_strchr(mo, 'J')) {
+        ngx_freebsd_debug_malloc = 1;
+    }
 #endif
 }