void* thread_func(void* arg){ int got_it = 0; while (!got_it) { got_it = OSSpinLockTry(&lock); } // usleep(1); make_iokit_call(); return NULL; }
void* thread_func(void* arg){ for(;;) { int got_it = 0; while (!got_it) { got_it = OSSpinLockTry(&lock); } make_iokit_call(); } return NULL; }
int main(int argc, char** argv){ OSSpinLockLock(&lock); pthread_t t; pthread_create(&t, NULL, thread_func, NULL); mach_port_t conn = get_user_client("IOHDIXController", 0); set_params(conn); for(;;) { OSSpinLockUnlock(&lock); make_iokit_call(); } return 0; }