vcpu_thread
static pthread_t vcpu_thread;
pthread_create(&vcpu_thread, NULL, vcpu_worker, vcpu);
pthread_join(vcpu_thread, NULL);
struct vcpu_thread *vcpu = data;
struct vcpu_thread *vcpu = &vcpu_threads[i];
static struct vcpu_thread vcpu_threads[KVM_MAX_VCPUS];
pthread_create(&data->vcpu_thread, NULL, vcpu_worker, data);
pthread_join(data->vcpu_thread, NULL);
pthread_t vcpu_thread;
static struct kvm_vm *spawn_vm(struct kvm_vcpu **vcpu, pthread_t *vcpu_thread,
pthread_create(vcpu_thread, NULL, vcpu_worker, *vcpu);
pthread_t vcpu_thread;
vm = spawn_vm(&vcpu, &vcpu_thread, guest_code_move_memory_region);
pthread_join(vcpu_thread, NULL);
pthread_t vcpu_thread;
vm = spawn_vm(&vcpu, &vcpu_thread, guest_code_delete_memory_region);
pthread_join(vcpu_thread, NULL);
r = pthread_create(&threads[0], NULL, vcpu_thread, vcpu[1]);
r = pthread_create(&threads[1], NULL, vcpu_thread, vcpu[2]);
r = pthread_create(&threads[0], NULL, vcpu_thread, vcpu[1]);
r = pthread_create(&threads[1], NULL, vcpu_thread, vcpu[2]);
r = pthread_create(&threads[0], NULL, vcpu_thread, ¶ms[0]);
r = pthread_create(&threads[1], NULL, vcpu_thread, ¶ms[1]);