[ https://issues.apache.org/jira/browse/TS-567?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
mohan_zl updated TS-567: ------------------------ Attachment: clear_memory.patch in build/aux/ltmain.sh, i wanna know whether or not should we support xfree like xmalloc change #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) to #define XFREE(stale) do { \ if (stale) { xfree ((void *) stale); stale = 0; } \ } while (0) and add function xfree void xfree (void *mem) { if (mem != NULL) free (p); else lt_fatal ("Freeing a NULL pointer"); } considering WIN32 support, i did not remove the relevant codes in iocore/cache, but change the function, like: CacheDisk::open #if defined(_WIN32) - header = (DiskHeader *) malloc(header_len); + header = (DiskHeader *) xmalloc(header_len); #else - header = (DiskHeader *) valloc(header_len); + header = (DiskHeader *) ink_memalign(sysconf(_SC_PAGESIZE), header_len); in iocore/net/SSLNet.cc void SSLNetProcessor::initSSLLocks(void) { #if !defined (_IOCORE_WIN32) sslMutexArray = (ProxyMutex **) OPENSSL_malloc(CRYPTO_num_locks() * sizeof(ProxyMutex *)); #else sslMutexArray = (ProxyMutex **) Malloc(CRYPTO_num_locks() * sizeof(ProxyMutex *)); // this is not defined, and maybe we should remove it #endif ... } > Cleanup of memory allocation in libinktomi++ > -------------------------------------------- > > Key: TS-567 > URL: https://issues.apache.org/jira/browse/TS-567 > Project: Traffic Server > Issue Type: Improvement > Components: Core > Reporter: Leif Hedstrom > Priority: Critical > Fix For: 3.1 > > Attachments: clear_memory.patch, malloc.txt > > > There's a lot of ifdef's and debugging code paths around various allocation > schemes in libinktomi++. We should clean this up, and simplify. It'd also be > great to make it easy to enable various other allocators, e.g. jemalloc or > tcmalloc, as part of the build system, causing ink_malloc / xmalloc and STL > containers to use the new allocator. In particular for STL containers, it > means we might need to have some allocator setup / initialization? > Also, when should we use ink_malloc() vs xmalloc() ? It's quite > inconsistently used right now I think. And, there are a few places using > malloc() (etc.) directly, which we ought to fix. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira