Lines Matching refs:data
26 * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
107 struct test_job_data *data =
110 mutex_enter(&data->mutex);
111 KASSERT(data->count != FINAL_COUNT);
112 data->count++;
113 cv_broadcast(&data->cond);
115 mutex_exit(&data->mutex);
121 struct test_job_data *data =
124 mutex_enter(&data->mutex);
125 if (data->count == 0) {
126 data->count = 1;
127 cv_broadcast(&data->cond);
129 while (data->count != FINAL_COUNT - 1)
130 cv_wait(&data->cond, &data->mutex);
131 data->count = FINAL_COUNT;
132 cv_broadcast(&data->cond);
134 mutex_exit(&data->mutex);
138 init_test_job_data(struct test_job_data *data, threadpool_job_fn_t fn)
140 mutex_init(&data->mutex, MUTEX_DEFAULT, IPL_NONE);
141 cv_init(&data->cond, "testjob");
142 threadpool_job_init(&data->job, fn, &data->mutex, "testjob");
143 data->count = 0;
147 fini_test_job_data(struct test_job_data *data)
149 threadpool_job_destroy(&data->job);
150 cv_destroy(&data->cond);
151 mutex_destroy(&data->mutex);
157 struct test_job_data data;
164 init_test_job_data(&data, test_job_func_schedule);
166 mutex_enter(&data.mutex);
167 while (data.count != FINAL_COUNT) {
168 threadpool_schedule_job(pool, &data.job);
169 error = cv_timedwait(&data.cond, &data.mutex, hz * 2);
172 mutex_exit(&data.mutex);
174 fini_test_job_data(&data);
182 struct test_job_data data;
192 init_test_job_data(&data, test_job_func_schedule);
194 mutex_enter(&data.mutex);
195 while (data.count != FINAL_COUNT) {
196 threadpool_schedule_job(pool, &data.job);
197 error = cv_timedwait(&data.cond, &data.mutex, hz * 2);
200 mutex_exit(&data.mutex);
202 fini_test_job_data(&data);
210 struct test_job_data data;
218 init_test_job_data(&data, test_job_func_cancel);
220 mutex_enter(&data.mutex);
221 threadpool_schedule_job(pool, &data.job);
222 while (data.count == 0)
223 cv_wait(&data.cond, &data.mutex);
224 KASSERT(data.count == 1);
227 rv = threadpool_cancel_job_async(pool, &data.job);
230 data.count = FINAL_COUNT - 1;
231 cv_broadcast(&data.cond);
234 threadpool_cancel_job(pool, &data.job);
235 KASSERT(data.count == FINAL_COUNT);
236 mutex_exit(&data.mutex);
238 fini_test_job_data(&data);
246 struct test_job_data data;
253 init_test_job_data(&data, test_job_func_cancel);
255 mutex_enter(&data.mutex);
257 threadpool_schedule_job(pool, &data.job);
259 mutex_exit(&data.mutex);
260 mutex_enter(&data.mutex);
267 data.count = FINAL_COUNT - 1;
268 cv_broadcast(&data.cond);
270 threadpool_cancel_job(pool, &data.job);
274 * (data.count == FINAL_COUNT - 1, per above) or
275 * it finished (data.count == FINAL_COUNT).
277 KASSERT(data.count == (FINAL_COUNT - 1) ||
278 data.count == FINAL_COUNT);
281 data.count = 0;
283 mutex_exit(&data.mutex);
285 fini_test_job_data(&data);