Fix "arenas.extend" mallctl to return the number of arenas.
Reported by Mike Hommey.
This commit is contained in:
parent
9906660eb7
commit
6eb84fbe31
@ -6,6 +6,11 @@ found in the git revision history:
|
|||||||
http://www.canonware.com/cgi-bin/gitweb.cgi?p=jemalloc.git
|
http://www.canonware.com/cgi-bin/gitweb.cgi?p=jemalloc.git
|
||||||
git://canonware.com/jemalloc.git
|
git://canonware.com/jemalloc.git
|
||||||
|
|
||||||
|
* 3.x.x (Not yet released)
|
||||||
|
|
||||||
|
Bug fixes:
|
||||||
|
- Fix "arenas.extend" mallctl to output the number of arenas.
|
||||||
|
|
||||||
* 3.2.0 (November 9, 2012)
|
* 3.2.0 (November 9, 2012)
|
||||||
|
|
||||||
In addition to a couple of bug fixes, this version modifies page run
|
In addition to a couple of bug fixes, this version modifies page run
|
||||||
|
20
src/ctl.c
20
src/ctl.c
@ -960,11 +960,11 @@ ctl_postfork_child(void)
|
|||||||
if (*oldlenp != sizeof(t)) { \
|
if (*oldlenp != sizeof(t)) { \
|
||||||
size_t copylen = (sizeof(t) <= *oldlenp) \
|
size_t copylen = (sizeof(t) <= *oldlenp) \
|
||||||
? sizeof(t) : *oldlenp; \
|
? sizeof(t) : *oldlenp; \
|
||||||
memcpy(oldp, (void *)&v, copylen); \
|
memcpy(oldp, (void *)&(v), copylen); \
|
||||||
ret = EINVAL; \
|
ret = EINVAL; \
|
||||||
goto label_return; \
|
goto label_return; \
|
||||||
} else \
|
} else \
|
||||||
*(t *)oldp = v; \
|
*(t *)oldp = (v); \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
@ -974,7 +974,7 @@ ctl_postfork_child(void)
|
|||||||
ret = EINVAL; \
|
ret = EINVAL; \
|
||||||
goto label_return; \
|
goto label_return; \
|
||||||
} \
|
} \
|
||||||
v = *(t *)newp; \
|
(v) = *(t *)newp; \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
@ -995,7 +995,7 @@ n##_ctl(const size_t *mib, size_t miblen, void *oldp, size_t *oldlenp, \
|
|||||||
if (l) \
|
if (l) \
|
||||||
malloc_mutex_lock(&ctl_mtx); \
|
malloc_mutex_lock(&ctl_mtx); \
|
||||||
READONLY(); \
|
READONLY(); \
|
||||||
oldval = v; \
|
oldval = (v); \
|
||||||
READ(oldval, t); \
|
READ(oldval, t); \
|
||||||
\
|
\
|
||||||
ret = 0; \
|
ret = 0; \
|
||||||
@ -1017,7 +1017,7 @@ n##_ctl(const size_t *mib, size_t miblen, void *oldp, size_t *oldlenp, \
|
|||||||
return (ENOENT); \
|
return (ENOENT); \
|
||||||
malloc_mutex_lock(&ctl_mtx); \
|
malloc_mutex_lock(&ctl_mtx); \
|
||||||
READONLY(); \
|
READONLY(); \
|
||||||
oldval = v; \
|
oldval = (v); \
|
||||||
READ(oldval, t); \
|
READ(oldval, t); \
|
||||||
\
|
\
|
||||||
ret = 0; \
|
ret = 0; \
|
||||||
@ -1036,7 +1036,7 @@ n##_ctl(const size_t *mib, size_t miblen, void *oldp, size_t *oldlenp, \
|
|||||||
\
|
\
|
||||||
malloc_mutex_lock(&ctl_mtx); \
|
malloc_mutex_lock(&ctl_mtx); \
|
||||||
READONLY(); \
|
READONLY(); \
|
||||||
oldval = v; \
|
oldval = (v); \
|
||||||
READ(oldval, t); \
|
READ(oldval, t); \
|
||||||
\
|
\
|
||||||
ret = 0; \
|
ret = 0; \
|
||||||
@ -1060,7 +1060,7 @@ n##_ctl(const size_t *mib, size_t miblen, void *oldp, size_t *oldlenp, \
|
|||||||
if ((c) == false) \
|
if ((c) == false) \
|
||||||
return (ENOENT); \
|
return (ENOENT); \
|
||||||
READONLY(); \
|
READONLY(); \
|
||||||
oldval = v; \
|
oldval = (v); \
|
||||||
READ(oldval, t); \
|
READ(oldval, t); \
|
||||||
\
|
\
|
||||||
ret = 0; \
|
ret = 0; \
|
||||||
@ -1077,7 +1077,7 @@ n##_ctl(const size_t *mib, size_t miblen, void *oldp, size_t *oldlenp, \
|
|||||||
t oldval; \
|
t oldval; \
|
||||||
\
|
\
|
||||||
READONLY(); \
|
READONLY(); \
|
||||||
oldval = v; \
|
oldval = (v); \
|
||||||
READ(oldval, t); \
|
READ(oldval, t); \
|
||||||
\
|
\
|
||||||
ret = 0; \
|
ret = 0; \
|
||||||
@ -1492,6 +1492,7 @@ arenas_extend_ctl(const size_t *mib, size_t miblen, void *oldp, size_t *oldlenp,
|
|||||||
void *newp, size_t newlen)
|
void *newp, size_t newlen)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
unsigned narenas;
|
||||||
|
|
||||||
malloc_mutex_lock(&ctl_mtx);
|
malloc_mutex_lock(&ctl_mtx);
|
||||||
READONLY();
|
READONLY();
|
||||||
@ -1499,7 +1500,8 @@ arenas_extend_ctl(const size_t *mib, size_t miblen, void *oldp, size_t *oldlenp,
|
|||||||
ret = EAGAIN;
|
ret = EAGAIN;
|
||||||
goto label_return;
|
goto label_return;
|
||||||
}
|
}
|
||||||
READ(ctl_stats.narenas - 1, unsigned);
|
narenas = ctl_stats.narenas - 1;
|
||||||
|
READ(narenas, unsigned);
|
||||||
|
|
||||||
ret = 0;
|
ret = 0;
|
||||||
label_return:
|
label_return:
|
||||||
|
Loading…
Reference in New Issue
Block a user