Lines Matching defs:fw

432 	struct futex_waiter fw;
440 error = futex_queue_sleep(&fl->fl_readers, fl, &fw, td,
442 KASSERT((error == 0) == fw.fw_locked,
444 KASSERT(futex_queue_count(&fw.fw_donated) == 0,
713 struct futex_waiter fw;
737 error = futex_queue_sleep(&fl->fl_writers, fl, &fw, td,
739 KASSERT((error == 0) == fw.fw_locked,
741 KASSERT(futex_queue_count(&fw.fw_donated) == 0,
812 struct futex_waiter *fw, struct thread *td, cloudabi_clockid_t clock_id,
819 fw->fw_tid = td->td_tid;
820 fw->fw_locked = false;
821 futex_queue_init(&fw->fw_donated);
832 fw->fw_queue = fq;
833 STAILQ_INSERT_TAIL(&fq->fq_list, fw, fw_next);
836 cv_init(&fw->fw_wait, "futex");
842 error = cv_wait_sig(&fw->fw_wait, &futex_global_lock);
845 error = cv_timedwait_sig_sbt(&fw->fw_wait, &futex_global_lock,
849 fw->fw_queue != NULL && fw->fw_queue != fq) {
857 error = cv_wait_sig(&fw->fw_wait, &futex_global_lock);
863 cv_destroy(&fw->fw_wait);
865 fq = fw->fw_queue;
873 STAILQ_REMOVE(&fq->fq_list, fw, futex_waiter, fw_next);
883 struct futex_waiter *fw;
887 fw = STAILQ_FIRST(&fqfrom->fq_list);
891 fw->fw_queue = fqto;
892 STAILQ_INSERT_TAIL(&fqto->fq_list, fw, fw_next);
901 struct futex_waiter *fw;
903 STAILQ_FOREACH(fw, &fq->fq_list, fw_next) {
904 fw->fw_locked = true;
905 fw->fw_queue = NULL;
906 cv_signal(&fw->fw_wait);
920 struct futex_waiter *fw;
922 fw = STAILQ_FIRST(&fq->fq_list);
923 fw->fw_locked = true;
924 fw->fw_queue = NULL;
925 cv_signal(&fw->fw_wait);
934 struct futex_waiter *fw;
936 fw = STAILQ_FIRST(&fq->fq_list);
937 if (fw == NULL)
939 fw->fw_locked = false;
940 fw->fw_queue = NULL;
941 cv_signal(&fw->fw_wait);
945 futex_queue_requeue(fq, &fw->fw_donated, nwaiters);
985 struct futex_waiter fw;
1016 error = futex_queue_sleep(&fc->fc_waiters, fc->fc_lock, &fw, td,
1018 if (fw.fw_locked) {
1020 KASSERT(futex_queue_count(&fw.fw_donated) == 0,
1037 &fw.fw_donated);
1041 KASSERT(futex_queue_count(&fw.fw_donated) == 0,