29 lines
614 B
C
29 lines
614 B
C
#include <pthread.h>
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <stdint.h>
|
|
|
|
#define NTHREADS 4
|
|
#define ITERS 100000
|
|
|
|
static void* worker(void* arg) {
|
|
(void)arg;
|
|
for (int i=0;i<ITERS;i++) {
|
|
size_t sz = (size_t)((i & 63) + 8);
|
|
void* p = malloc(sz);
|
|
if (!p) abort();
|
|
((uint8_t*)p)[0] = (uint8_t)i;
|
|
free(p);
|
|
}
|
|
return NULL;
|
|
}
|
|
|
|
int main(void) {
|
|
pthread_t th[NTHREADS];
|
|
for (int i=0;i<NTHREADS;i++) pthread_create(&th[i], NULL, worker, NULL);
|
|
for (int i=0;i<NTHREADS;i++) pthread_join(th[i], NULL);
|
|
puts("[OK] mt_smoke done");
|
|
return 0;
|
|
}
|
|
|