Пример #1
0
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
}
Пример #2
0
//--------------------------------------------------------------------------
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);
}
Пример #3
0
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;
}
Пример #4
0
void start_websocket_thread() {
  websockets_running = 1;
  websockets_thread = qthread_create(websocket_thread, NULL);
}