LINUX.ORG.RU

GNU extension - pthread_yield(), хотя в LinuxThreads и NPTL это просто 

/* With the 1-on-1 model we implement this function is equivalent to
   the 'sched_yield' function.  */
int
pthread_yield (void)
{
  return sched_yield ();
}

jek_
()
Ответ на: комментарий от jek_

Мне бы для Solaris...

bash-2.03$ man pthread_yield
No manual entry for pthread_yield.
bash-2.03$ 

:(
Есть у меня большие подозрения, что pthread_yield != sched_yield для этой оси.

Dead ★★★★
() автор топика
Ответ на: комментарий от Dead

> кажись нашел
>
> thr_yield();

Раз уж пишешь для Solaris, неужели трудно посмотреть в документацию?
Или ты на форуме ЛОРа программировать учишься? :-)))

Есть же "Multithreaded Programming Guide" ( http://docs.sun.com/app/docs/doc/806-5257 )

В Solaris есть POSIX Threads и Solaris Threads. Это похожие вещи
с разным API. Твой thr_yield() - это из Solaris Threads.
Для POSIX Thread используй sched_yield() (который хотя и не является
частью POSIX Threads, но специфицирован как POSIX RT Extension).

Рекомендую посмотреть табличку:
"Comparing APIs for Solaris Threads and POSIX Threads"
http://docs.sun.com/app/docs/doc/806-5257/6je9h033p?a=view

Onanim
()
Ответ на: комментарий от Onanim

Спасибо за подсказку :)
Что-то не захотел вчера грузиться этот документ. Сегодня все ок :)

Dead ★★★★
() автор топика

Просто пара комментариев:

1. sched_yield() под Линухом работает _крайне_ иррегулярно от версии к версии ядра.

2. Рескедьюлинг в определенном смысле похож на goto: всякий раз, когда возникла вдруг охота его применить, надо задуматься: а оно _действительно_ надо?

Die-Hard ★★★★★
()
Ответ на: комментарий от Onanim

> Для POSIX Thread используй sched_yield() (который хотя и не является частью POSIX Threads, но специфицирован как POSIX RT Extension).

может я что-то не так делаю, но http://www.opengroup.org/onlinepubs/009695399/ напроч отказывается искать sched_yeld с аргументацией "Sorry, no match. Try a Word Search". может, это всё таки не оффициальный POSIX?

// wbr

klalafuda ★☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.