void handle_session(rpc_server_t *server) { #ifndef __SINGLE_THREADED_SERVER__ qthread_t t = qthread_create(thread_handle_session, (void *)server); // Add the session to the list qmutex_lock(g_lock); clients_list[server] = t; qmutex_unlock(g_lock); #else g_global_server = server; handle_single_session(server); g_global_server = NULL; #endif }
//-------------------------------------------------------------------------- void handle_session(rpc_server_t *server) { #ifndef __SINGLE_THREADED_SERVER__ qthread_t t = qthread_create(thread_handle_session, (void *)server); bool run_handler = false; #else bool t = true; bool run_handler = true; #endif // Add the session to the list srv_lock_begin(); clients_list[server] = t; g_global_server = server; srv_lock_end(); if ( run_handler ) handle_single_session(server); }
int main(int argc, char **argv) { int i; qthread_t t; signal(SIGINT, handler); init_time(); nforks = 4; qthread_mutex_init(&m, NULL); for (i = 0; i < nforks; i++) qthread_cond_init(&C[i], NULL); for (i = 0; i < nforks; i++) qthread_create(&t, NULL, philosopher_thread, (void*)i); wait_until_done(); return 0; }
void start_websocket_thread() { websockets_running = 1; websockets_thread = qthread_create(websocket_thread, NULL); }