Date: Tue, 11 Mar 2014 18:07:25 +0100 From: =?ISO-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com> To: <freebsd-current@freebsd.org> Subject: Too low PTHREAD_STACK_MIN value? Message-ID: <531F42CD.8020307@citrix.com>
next in thread | raw e-mail | index | archive | help
Hello,
While debugging a pthread program that sets the stack size of pthreads,
I've found out that the value PTHREAD_STACK_MIN is currently set (2048
bytes) seems to be way too low. As an example, the following simple
program will segfault:
---
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#define MALLOC_SIZE 1024
void *
foo(void *arg)
{
void *bar;
bar = malloc(MALLOC_SIZE);
assert(bar != NULL);
return (NULL);
}
int main(void)
{
pthread_t thread;
pthread_attr_t attr;
int rc, i;
rc = pthread_attr_init(&attr);
assert(rc == 0);
rc = pthread_attr_setstacksize(&attr, PTHREAD_STACK_MIN);
assert(rc == 0);
rc = pthread_create(&thread, &attr, foo, NULL);
assert(0 == rc);
rc = pthread_join(thread, NULL);
assert(0 == rc);
exit(EXIT_SUCCESS);
}
---
IMHO, PTHREAD_STACK_MIN should be set to a sane value, that allows the
thread to at least make use of libc functions.
Roger.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?531F42CD.8020307>
