Lines Matching refs:args

114 	struct thread_arg *args = (struct thread_arg *)arg;  in waiterfn()  local
117 info("Waiter %ld: running\n", args->id); in waiterfn()
121 usleep(1000 * (long)args->id); in waiterfn()
127 args->ret = futex_wait_requeue_pi(&f1, old_val, &f2, args->timeout, in waiterfn()
130 info("waiter %ld woke with %d %s\n", args->id, args->ret, in waiterfn()
131 args->ret < 0 ? strerror(errno) : ""); in waiterfn()
133 if (args->ret < 0) { in waiterfn()
134 if (args->timeout && errno == ETIMEDOUT) in waiterfn()
135 args->ret = 0; in waiterfn()
137 args->ret = RET_ERROR; in waiterfn()
144 info("Waiter %ld: exiting with %d\n", args->id, args->ret); in waiterfn()
145 pthread_exit((void *)&args->ret); in waiterfn()
150 struct thread_arg *args = (struct thread_arg *)arg; in broadcast_wakerfn() local
163 if (args->lock) { in broadcast_wakerfn()
169 args->ret = futex_cmp_requeue_pi(&f1, old_val, &f2, nr_wake, nr_requeue, in broadcast_wakerfn()
171 if (args->ret < 0) { in broadcast_wakerfn()
172 args->ret = RET_ERROR; in broadcast_wakerfn()
175 task_count += args->ret; in broadcast_wakerfn()
181 args->ret = RET_ERROR; in broadcast_wakerfn()
186 if (args->lock) in broadcast_wakerfn()
189 if (args->ret > 0) in broadcast_wakerfn()
190 args->ret = task_count; in broadcast_wakerfn()
192 info("Waker: exiting with %d\n", args->ret); in broadcast_wakerfn()
193 pthread_exit((void *)&args->ret); in broadcast_wakerfn()
198 struct thread_arg *args = (struct thread_arg *)arg; in signal_wakerfn() local
213 if (args->lock) { in signal_wakerfn()
221 args->ret = futex_cmp_requeue_pi(&f1, old_val, &f2, in signal_wakerfn()
224 if (args->ret < 0) in signal_wakerfn()
225 args->ret = -errno; in signal_wakerfn()
227 if (args->lock) { in signal_wakerfn()
233 if (args->ret < 0) { in signal_wakerfn()
235 args->ret = RET_ERROR; in signal_wakerfn()
239 task_count += args->ret; in signal_wakerfn()
246 args->ret = RET_ERROR; in signal_wakerfn()
253 if (args->ret >= 0) in signal_wakerfn()
254 args->ret = task_count; in signal_wakerfn()
256 info("Waker: exiting with %d\n", args->ret); in signal_wakerfn()
258 pthread_exit((void *)&args->ret); in signal_wakerfn()
263 struct thread_arg *args = (struct thread_arg *)arg; in third_party_blocker() local
266 args->ret = futex_lock_pi(&f2, NULL, 0, FUTEX_PRIVATE_FLAG); in third_party_blocker()
267 if (args->ret) in third_party_blocker()
269 args->ret = futex_wait(&wake_complete, wake_complete, NULL, in third_party_blocker()
274 if (args->ret || ret2) { in third_party_blocker()
276 args->ret = RET_ERROR; in third_party_blocker()
279 pthread_exit((void *)&args->ret); in third_party_blocker()
289 struct thread_arg args[THREAD_MAX]; in unit_test() local
321 args[i].id = i; in unit_test()
322 args[i].timeout = tsp; in unit_test()
324 if (create_rt_thread(&waiter[i], waiterfn, (void *)&args[i], in unit_test()
341 waiter_ret = &args[0].ret; in unit_test()