add make clean
[urcu.git] / test_urcu.c
CommitLineData
ac260fd9 1#include <stdio.h>
f69f195a
MD
2#include <pthread.h>
3#include <stdlib.h>
4#include <sys/types.h>
5#include <sys/wait.h>
6#include <unistd.h>
7#include <stdio.h>
ac260fd9
MD
8#include "urcu.h"
9
f69f195a
MD
10#define NR_READ 10
11#define NR_WRITE 4
12
13
14void *thr_reader(void *arg)
15{
16 printf("thread %s, thread id : %lu, pid %lu\n",
17 "reader", pthread_self(), getpid());
18 sleep(2);
19
20 urcu_register_thread();
21
22
23
24 urcu_unregister_thread();
25 return ((void*)1);
26
27}
28
29void *thr_writer(void *arg)
30{
31 int i;
32
33 printf("thread %s, thread id : %lu, pid %lu\n",
34 "writer", pthread_self(), getpid());
35 sleep(2);
36
37 for (i = 0; i < 1000; i++) {
38 }
39
40 return ((void*)2);
41}
ac260fd9
MD
42
43int main()
44{
f69f195a
MD
45 int err;
46 pthread_t tid_reader[NR_READ], tid_writer[NR_WRITE];
47 void *tret;
48 int i;
49
50 for (i = 0; i < NR_READ; i++) {
51 err = pthread_create(&tid_reader[i], NULL, thr_reader, NULL);
52 if (err != 0)
53 exit(1);
54 }
55 for (i = 0; i < NR_WRITE; i++) {
56 err = pthread_create(&tid_writer[i], NULL, thr_writer, NULL);
57 if (err != 0)
58 exit(1);
59 }
60
61 sleep(10);
ac260fd9 62
f69f195a
MD
63 for (i = 0; i < NR_WRITE; i++) {
64 err = pthread_join(tid_reader[i], &tret);
65 if (err != 0)
66 exit(1);
67 }
68 for (i = 0; i < NR_WRITE; i++) {
69 err = pthread_join(tid_writer[i], &tret);
70 if (err != 0)
71 exit(1);
72 }
ac260fd9 73
f69f195a 74 return 0;
ac260fd9 75}
This page took 0.025107 seconds and 4 git commands to generate.