Пример #1
0
void
hts_thread_create_joinable(const char *title, hts_thread_t *p,
                           void *(*func)(void *), void *aux, int prio)
{
    pthread_attr_t attr;
    pthread_attr_init(&attr);

#if defined(linux)
    if(prio <= -10 && posix_set_thread_priorities) {
        pthread_attr_setinheritsched(&attr, PTHREAD_EXPLICIT_SCHED);
        pthread_attr_setschedpolicy(&attr, SCHED_RR);
        struct sched_param param = {0};
        param.sched_priority = sched_get_priority_max(SCHED_RR);
        pthread_attr_setschedparam(&attr, &param);
    }
#endif

    pthread_create(p, &attr, thread_trampoline,
                   make_trampoline(title, func, aux, prio));
    pthread_attr_destroy(&attr);

    if(gconf.enable_thread_debug)
        tracelog(TRACE_NO_PROP, TRACE_DEBUG,
                 "thread", "Created thread: %s", title);
}
Пример #2
0
void
hts_thread_create_joinable(const char *title, hts_thread_t *p, 
			   void *(*func)(void *), void *aux, int prio)
{
  pthread_attr_t attr;
  pthread_attr_init(&attr);
  pthread_attr_setstacksize(&attr, 128 * 1024);
  pthread_create(p, &attr, thread_trampoline,
		make_trampoline(title, func, aux));
  pthread_attr_destroy(&attr);

  TRACE(TRACE_DEBUG, "thread", "Created thread: %s", title);
}
Пример #3
0
void
hts_thread_create_joinable(const char *title, hts_thread_t *p,
			   void *(*func)(void *), void *aux, int prio)
{
  pthread_attr_t attr;
  pthread_attr_init(&attr);

  pthread_create(p, &attr, thread_trampoline,
		 make_trampoline(title, func, aux, prio));
  pthread_attr_destroy(&attr);

  if(gconf.enable_thread_debug)
    TRACE(TRACE_DEBUG, "thread", "Created thread: %s", title);
}
Пример #4
0
void
hts_thread_create_detached(const char *title, void *(*func)(void *), void *aux,
			   int prio)
{
  pthread_t id;
  pthread_attr_t attr;
  pthread_attr_init(&attr);
  pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
  pthread_attr_setstacksize(&attr, 128 * 1024);
  pthread_create(&id, &attr, thread_trampoline,
		 make_trampoline(title, func, aux));
  pthread_attr_destroy(&attr);
  TRACE(TRACE_DEBUG, "thread", "Created detached thread: %s", title);

}
Пример #5
0
void
hts_thread_create_detached(const char *title, void *(*func)(void *), void *aux,
                           int prio)
{
    pthread_t id;
    pthread_attr_t attr;
    pthread_attr_init(&attr);
    pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
    pthread_create(&id, &attr, thread_trampoline,
                   make_trampoline(title, func, aux, prio));
    pthread_attr_destroy(&attr);
    if(gconf.enable_thread_debug)
        tracelog(TRACE_NO_PROP, TRACE_DEBUG,
                 "thread", "Created detached thread: %s", title);

}