posix threads

tokuchu

Кто знает как с поддержкой этого в Linux и Solaris. В Linux на сколько я знаю есть linux threads, которые это дело реализуют. На сколько они соответствуют стандарту? И есть ли их реализация в Solaris'е и соответственно тоже на сколько стандартная? Т.е. будут ли проблемы с переносом сырцов? Кто-нибудь может мне на этот вопрос ответить?

tucha96

Насколько я знаю, в Linux 2.4 для этого есть библиотека какая-то, а в 2.5 это в kernel запихали. Но не в теме. Google более точно скажет.

tokuchu

Да я что-то пытался поискать... как-то не густо

mama10001

Разница Posix threads и Solaris threads есть. Об этом можно судить хотя бы по вызову ф-и создания thread’a
Posix <pthread.h> :

int pthread_create(pthread_t *tid, const pthread_attr_t *tattr,
void*(*start_routinevoid * void *arg);


В Linux нужно при линковке подключать –lpthread. В Cygwin – не нужно !
Solaris <thread.h> :

int thr_create(void *stack_base, size_t stack_size,
void *(*start_routine) (void * void *arg, long flags, thread_t *new_thread);


Подключить -lthread

tokuchu

Ну я так понял, что то, что ты назвал Solaris threads не есть реализация posix threads в Solaris. Т.е. ты хочешь сказать, что её там нет... просто я где-то видел инфу, что в последней версии есть поддержка POSIX.1c или как-то там оно ещё пишется.

Fanatik

http://www.gnu.org/software/pth/ -может поможет ?
хотя я в этом деле не специалист

abrek

linuxthreads стандарту не очень следует, особенно сильно отличается семантика обработки сигналов
это связано с тем, что треды реализуются отдельными процессами, со своими PID, атрибутами безопасности и пр.
В 2.5 (и в некоторых vendor kernels, например в RedHat 9) есть более новая реализация (NPTL требующая новой glibc, утверждается, что она гораздо совместимее, и многие другие проблемы устранены.

tokuchu

Я это смотрел тоже. pth - это что-то отдельное (portable threads реализуется там всё руками без использования ядра на сколько я понял. Возможно есть смысл воспользоваться этим. Тогда вопрос - пытался ли кто-нибудь скомпилировать это дело на Solaris'е?

tokuchu

Вот что они сами написали: "Pth was successfully tested on FreeBSD, NetBSD, OpenBSD, BSDI, GNU/Linux, Solaris, HPUX, Tru64 (OSF/1 AIX, IRIX, UnixWare, SCO OpenServer, SINIX, ReliantUNIX, ISC, AmigaOS, Rhapsody (MacOS X FTX, AUX and Win32/Cygwin. And it should should automatically adjust itself to remaining Unix platforms, too."
Придётся из заюзать, т.к., видимо, особых альтернатив нету...
Оставить комментарий
Имя или ник:
Комментарий: