Lines Matching +full:multi +full:- +full:function
10 * See the COPYING.LIB file in the top-level directory.
17 #include "qemu/error-report.h"
26 static __thread int id = -1;
30 /* Run a function synchronously on a remote iothread. */
41 data->cb(data->arg); in ctx_run_bh_cb()
201 /* CoMutex thread-safety. */
297 static int mutex_head = -1;
303 nodes[id].next = -1; in mcs_mutex_lock()
306 if (prev != -1) { in mcs_mutex_lock()
317 if (qatomic_read(&nodes[id].next) == -1) { in mcs_mutex_unlock()
319 qatomic_cmpxchg(&mutex_head, id, -1) == id) { in mcs_mutex_unlock()
323 while (qatomic_read(&nodes[id].next) == -1) { in mcs_mutex_unlock()
351 assert(mutex_head == -1); in test_multi_fair_mutex()
449 g_test_add_func("/aio/multi/lifecycle", test_lifecycle); in main()
451 g_test_add_func("/aio/multi/schedule", test_multi_co_schedule_1); in main()
452 g_test_add_func("/aio/multi/mutex/contended", test_multi_co_mutex_1); in main()
453 g_test_add_func("/aio/multi/mutex/handoff", test_multi_co_mutex_2_3); in main()
455 g_test_add_func("/aio/multi/mutex/mcs", test_multi_fair_mutex_1); in main()
457 g_test_add_func("/aio/multi/mutex/pthread", test_multi_mutex_1); in main()
459 g_test_add_func("/aio/multi/schedule", test_multi_co_schedule_10); in main()
460 g_test_add_func("/aio/multi/mutex/contended", test_multi_co_mutex_10); in main()
461 g_test_add_func("/aio/multi/mutex/handoff", test_multi_co_mutex_2_30); in main()
463 g_test_add_func("/aio/multi/mutex/mcs", test_multi_fair_mutex_10); in main()
465 g_test_add_func("/aio/multi/mutex/pthread", test_multi_mutex_10); in main()