summaryrefslogtreecommitdiff
path: root/src/example.c
blob: 12383faa2bcf122ec714a3d8da80f16c48a2c6dd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <assert.h>

#include "pad.h"

typedef struct foo_t {
	int	x, y, z;
} foo_t;

#define	CHUNK_CNT	256

int main(int argc, char *argv[])
{
	foo_t	*f[10 * CHUNK_CNT];
	pad_t	*p;

	p = pad_new(sizeof(foo_t) * 256);
	assert(p);

	for (int n = 0; n < 10; n++) {
		for (int i = 0; i < 10 * CHUNK_CNT; i++)
			assert(f[i] = pad_get(p, sizeof(foo_t)));

		for (int i = 0; i < 10 * CHUNK_CNT; i++)
			pad_put(f[i]);

		for (int i = 0; i < 10 * CHUNK_CNT; i++)
			assert(f[i] = pad_get(p, sizeof(foo_t)));

			pad_reset(p);
	}

	pad_free(p);

	return 0;
}
© All Rights Reserved