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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
use ThreadPool;
// #[no_mangle]
// pub static mut QUEUES: size_t = 10 as libc::c_int as size_t;
// #[no_mangle]
// pub static mut QUEUE_VALUES: size_t = 10 as libc::c_int as size_t;
// #[no_mangle]
// pub static mut REPETITIONS: size_t = 100 as libc::c_int as size_t;
// #[no_mangle]
// pub static mut ENQUEUE_DELAY: timespec = {
// let mut init = timespec {
// tv_sec: 0 as libc::c_int as __time_t,
// tv_nsec: 1000000 as libc::c_int as __syscall_slong_t,
// };
// init
// };
// #[no_mangle]
// pub static mut queues: [*mut queue_t; 10] = [0 as *const queue_t as *mut queue_t; 10];
// #[no_mangle]
// pub unsafe extern "C" fn enqueuer(mut _queue_index: *mut libc::c_void) -> *mut libc::c_void {
// let mut queue_index: size_t = _queue_index as size_t;
// let mut queue: *mut queue_t = queues[queue_index as usize];
// let mut i: size_t = 0 as libc::c_int as size_t;
// while i < QUEUE_VALUES {
// let mut value: size_t = queue_index.wrapping_add(i.wrapping_mul(QUEUES));
// queue_enqueue(queue, value as *mut libc::c_void);
// let mut result: libc::c_int = nanosleep(&ENQUEUE_DELAY, 0 as *mut timespec);
// if result == 0 as libc::c_int {
// } else {
// __assert_fail(
// b"result == 0\x00" as *const u8 as *const libc::c_char,
// b"tests/mqueue_multiple_queues.c\x00" as *const u8 as *const libc::c_char,
// 21 as libc::c_int as libc::c_uint,
// (*::std::mem::transmute::<&[u8; 23], &[libc::c_char; 23]>(
// b"void *enqueuer(void *)\x00",
// ))
// .as_ptr(),
// );
// }
// i = i.wrapping_add(1)
// }
// return 0 as *mut libc::c_void;
// }
// #[no_mangle]
// pub unsafe extern "C" fn dequeuer(mut _queue_index: *mut libc::c_void) -> *mut libc::c_void {
// let mut queue_index: size_t = _queue_index as size_t;
// let mut queue: *mut queue_t = queues[queue_index as usize];
// let mut i: size_t = 0 as libc::c_int as size_t;
// while i < QUEUE_VALUES {
// let mut value: size_t = queue_dequeue(queue) as size_t;
// if value == queue_index.wrapping_add(i.wrapping_mul(QUEUES)) {
// } else {
// __assert_fail(
// b"value == queue_index + i * QUEUES\x00" as *const u8 as *const libc::c_char,
// b"tests/mqueue_multiple_queues.c\x00" as *const u8 as *const libc::c_char,
// 31 as libc::c_int as libc::c_uint,
// (*::std::mem::transmute::<&[u8; 23], &[libc::c_char; 23]>(
// b"void *dequeuer(void *)\x00",
// ))
// .as_ptr(),
// );
// }
// i = i.wrapping_add(1)
// }
// return 0 as *mut libc::c_void;
// }
// #[test]
// pub fn main() {
// let mut repetition: size_t = 0 as libc::c_int as size_t;
// while repetition < REPETITIONS {
// let vla = QUEUES as usize;
// let mut enqueue_threads: Vec<pthread_t> = ::std::vec::from_elem(0, vla);
// let vla_0 = QUEUES as usize;
// let mut dequeue_threads: Vec<pthread_t> = ::std::vec::from_elem(0, vla_0);
// let mut i: size_t = 0 as libc::c_int as size_t;
// while i < QUEUES {
// queues[i as usize] = queue_init();
// let mut result: libc::c_int = pthread_create(
// &mut *dequeue_threads.as_mut_ptr().offset(i as isize),
// 0 as *const pthread_attr_t,
// Some(dequeuer as unsafe extern "C" fn(_: *mut libc::c_void) -> *mut libc::c_void),
// i as *mut libc::c_void,
// );
// if result == 0 as libc::c_int {
// } else {
// __assert_fail(
// b"result == 0\x00" as *const u8 as *const libc::c_char,
// b"tests/mqueue_multiple_queues.c\x00" as *const u8 as *const libc::c_char,
// 43 as libc::c_int as libc::c_uint,
// (*::std::mem::transmute::<&[u8; 11], &[libc::c_char; 11]>(b"int main()\x00"))
// .as_ptr(),
// );
// }
// result = pthread_create(
// &mut *enqueue_threads.as_mut_ptr().offset(i as isize),
// 0 as *const pthread_attr_t,
// Some(enqueuer as unsafe extern "C" fn(_: *mut libc::c_void) -> *mut libc::c_void),
// i as *mut libc::c_void,
// );
// if result == 0 as libc::c_int {
// } else {
// __assert_fail(
// b"result == 0\x00" as *const u8 as *const libc::c_char,
// b"tests/mqueue_multiple_queues.c\x00" as *const u8 as *const libc::c_char,
// 45 as libc::c_int as libc::c_uint,
// (*::std::mem::transmute::<&[u8; 11], &[libc::c_char; 11]>(b"int main()\x00"))
// .as_ptr(),
// );
// }
// i = i.wrapping_add(1)
// }
// let mut i_0: size_t = 0 as libc::c_int as size_t;
// while i_0 < QUEUES {
// let mut result_0: libc::c_int = pthread_join(
// *enqueue_threads.as_mut_ptr().offset(i_0 as isize),
// 0 as *mut *mut libc::c_void,
// );
// if result_0 == 0 as libc::c_int {
// } else {
// __assert_fail(
// b"result == 0\x00" as *const u8 as *const libc::c_char,
// b"tests/mqueue_multiple_queues.c\x00" as *const u8 as *const libc::c_char,
// 49 as libc::c_int as libc::c_uint,
// (*::std::mem::transmute::<&[u8; 11], &[libc::c_char; 11]>(b"int main()\x00"))
// .as_ptr(),
// );
// }
// result_0 = pthread_join(
// *dequeue_threads.as_mut_ptr().offset(i_0 as isize),
// 0 as *mut *mut libc::c_void,
// );
// if result_0 == 0 as libc::c_int {
// } else {
// __assert_fail(
// b"result == 0\x00" as *const u8 as *const libc::c_char,
// b"tests/mqueue_multiple_queues.c\x00" as *const u8 as *const libc::c_char,
// 51 as libc::c_int as libc::c_uint,
// (*::std::mem::transmute::<&[u8; 11], &[libc::c_char; 11]>(b"int main()\x00"))
// .as_ptr(),
// );
// }
// queue_free(queues[i_0 as usize]);
// i_0 = i_0.wrapping_add(1)
// }
// repetition = repetition.wrapping_add(1)
// }
// return 0;
// }