[Dovecot] memory allocation in new thread
. .
talanchor at mail.ru
Thu Oct 11 13:21:09 EEST 2012
Hi! I have some problems with memory allocation.
I create new thread in cidir storage and call malloc(), and it fails to allocate even 1 byte.
What can cause this problem?
Dovecot vesrion is: 2.1.10 (130563b592c9+)
Sample code looks like this (I also link to pthread with: -pthread):
#define TEST_MALLOC() \
{ \
void *p; \
p = malloc(1); \
if (!p) { \
i_info("%s: malloc() failed", __FUNCTION__); \
} else { \
i_info("%s: malloc() succeeded", __FUNCTION__); \
free(p); \
} \
}
#include <pthread.h>
static void *test_pthread_malloc_func(void *data_)
{
TEST_MALLOC();
return NULL;
}
static void test_pthread_malloc()
{
int ret;
pthread_t tid;
TEST_MALLOC();
ret = pthread_create(&tid, NULL, test_pthread_malloc_func, NULL);
if (ret) {
i_info("failed to start thread");
} else {
pthread_join(tid, NULL);
}
}
I call test_pthread_malloc() function.
It produces following output:
Oct 11 12:56:15 imap(guest): Info: test_pthread_malloc: malloc() succeeded
Oct 11 12:56:15 imap(guest): Info: test_pthread_malloc_func: malloc() failed
More information about the dovecot
mailing list