Update to w3m-0.2.1-inu-1.6.
This commit is contained in:
40
gc/tests/thread_leak_test.c
Normal file
40
gc/tests/thread_leak_test.c
Normal file
@@ -0,0 +1,40 @@
|
||||
#define GC_LINUX_THREADS
|
||||
#include "leak_detector.h"
|
||||
#include <pthread.h>
|
||||
#include <stdio.h>
|
||||
|
||||
void * test(void * arg) {
|
||||
int *p[10];
|
||||
int i;
|
||||
GC_find_leak = 1; /* for new collect versions not compiled */
|
||||
/* with -DFIND_LEAK. */
|
||||
for (i = 0; i < 10; ++i) {
|
||||
p[i] = malloc(sizeof(int)+i);
|
||||
}
|
||||
CHECK_LEAKS();
|
||||
for (i = 1; i < 10; ++i) {
|
||||
free(p[i]);
|
||||
}
|
||||
}
|
||||
|
||||
#define NTHREADS 5
|
||||
|
||||
main() {
|
||||
int i;
|
||||
pthread_t t[NTHREADS];
|
||||
int code;
|
||||
|
||||
for (i = 0; i < NTHREADS; ++i) {
|
||||
if ((code = pthread_create(t + i, 0, test, 0)) != 0) {
|
||||
printf("Thread creation failed %d\n", code);
|
||||
}
|
||||
}
|
||||
for (i = 0; i < NTHREADS; ++i) {
|
||||
if ((code = pthread_join(t[i], 0)) != 0) {
|
||||
printf("Thread join failed %lu\n", code);
|
||||
}
|
||||
}
|
||||
CHECK_LEAKS();
|
||||
CHECK_LEAKS();
|
||||
CHECK_LEAKS();
|
||||
}
|
||||
Reference in New Issue
Block a user