Blame src/regression/pthread_create-oom.c
|
Szabolcs Nagy |
cfa23c |
// commit: 59666802fba592a59f2f4ea4dcb053287fd55826 2011-02-15
|
|
Szabolcs Nagy |
cfa23c |
// pthread_create should return EAGAIN on failure
|
|
Szabolcs Nagy |
cfa23c |
#include <pthread.h>
|
|
Szabolcs Nagy |
cfa23c |
#include <stdio.h>
|
|
Szabolcs Nagy |
cfa23c |
#include <errno.h>
|
|
Szabolcs Nagy |
cfa23c |
#include <string.h>
|
|
Szabolcs Nagy |
cfa23c |
#include "test.h"
|
|
Szabolcs Nagy |
cfa23c |
|
|
Szabolcs Nagy |
cfa23c |
static void *start(void *arg)
|
|
Szabolcs Nagy |
cfa23c |
{
|
|
Szabolcs Nagy |
cfa23c |
return 0;
|
|
Szabolcs Nagy |
cfa23c |
}
|
|
Szabolcs Nagy |
cfa23c |
|
|
Szabolcs Nagy |
cfa23c |
int main(void)
|
|
Szabolcs Nagy |
cfa23c |
{
|
|
Szabolcs Nagy |
cfa23c |
pthread_t td;
|
|
Szabolcs Nagy |
cfa23c |
int r, arg;
|
|
Szabolcs Nagy |
cfa23c |
|
|
Szabolcs Nagy |
cfa23c |
r = t_vmfill(0, 0, 0);
|
|
Szabolcs Nagy |
cfa23c |
if (r <= 0) {
|
|
Szabolcs Nagy |
cfa23c |
t_error("fatal: vmfill has failed\n");
|
|
Szabolcs Nagy |
cfa23c |
return 1;
|
|
Szabolcs Nagy |
cfa23c |
}
|
|
Szabolcs Nagy |
cfa23c |
r = pthread_create(&td, 0, start, &arg;;
|
|
Szabolcs Nagy |
cfa23c |
if (r == 0)
|
|
Szabolcs Nagy |
cfa23c |
t_error("pthread_create succeeded\n");
|
|
Szabolcs Nagy |
cfa23c |
else if (r != EAGAIN)
|
|
Szabolcs Nagy |
cfa23c |
t_error("pthread_create should fail with EAGAIN but failed with %d (%s)\n", r, strerror(r));
|
|
Szabolcs Nagy |
cfa23c |
|
|
Szabolcs Nagy |
cfa23c |
return t_status;
|
|
Szabolcs Nagy |
cfa23c |
}
|