The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Алтернатива alert() в UNIX? (threads)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: threads,  (найти похожие документы)
_ RU.UNIX (2:5077/15.22) _____________________________________________ RU.UNIX _ From : Vladimir A. Butenko 2:5020/400 05 Oct 98 18:19:44 Subj : Re: Алтернатива alert() в UNIX? ________________________________________________________________________________ From: [email protected] (Vladimir A. Butenko) In article <[email protected]>, Boris Tobotras <[email protected]> wrote: > >>>>> "Vladimir" == Vladimir A Butenko writes: > > Vladimir> Классный программист еще и заджойнит этот тред при закрывании > Vladimir> библиотеки. Умный программист этого делать никогда не будет (ну, > Vladimir> на Солярисе может, и будет - и то ... :-) > > Вот поделились бы разумом :) Почему не джойнить-то? "Джойнт, Петька, дело ответственное", сказал он, скручивая его с особой любовью. а) во-первых, надо убедиться, что в момент, когда вызывается pthread_join, или как он там - то активным является именно тот тред, который исходно породил служебный тред. Это - в любом случае. Заметим, что ежели мы пишем библиотеку, то никто не гарантировал, что не найдется этакий хитроушлый фидошник, который уже прознал про треды, и инциировать нашу библиотеку будет в одном треде (главном, но не факт), а убивать-закрывать - в каком-нибудь треде, который собственно и реализует коммуникационные сессии и крутится где-то сбоку. То есть руки ему надо было бы, конечно, поотрывать - но руки его далеко, и из библиотеки ну никак не доступны. Посему - "ответственное это дело". Хотя бы в статике спасти ID своего треда, когда порождали, и при закрытии библиотеки - сравнить с ID текущего. И попытаться найти домашний адрес вызывающего, если IDы не совпадают. б) в отличие от Форточек и Соляриса - во всех остальных системах треды появились позже самой системы. Очень сильно повезло тем системам, в которых реализатор тредов хоть раз в жизни написал хоть что-то, их использующее. Hо еще больше повезло тем системам, в которых реализатор не только в своем 20-строчном тесте сподобился породить эти треды, но еще и заджойнить их, породить опять, и так далее. Hу вот, в результате, в Линухе (5.1) после каждого порождения/убивания 16 байтиков откладываются в закрома Родины. Причем где откладываются - тоже большой секрет для всех. Про новый ФриБСД - не скажу, не делал я тестов - ибо будучи программистом не классным, но ленивым, к тредам старался подходить по-буддийски, и не убивал братьев наших младших. Вообще-то самое интересное происходит в тех системах, где p-threads не являются системной имплементацией, но в системе есть свои супер-дупер треды, а p-threadы прикручены сверху, просто как интерфейс. Вроде как в Солярисе и только - это сделано на совесть (которая позволила разработать остальной Солярис, правда). Вот в Махе с БСДей сверху хоть и не p-threads, а c-threads, но все равно забавны: по тому, удавался ли cthread_join или зависал - можно было определять число осадков выпадающих в это время в МиллВаллевском офисе. Или наоборот - сидя в Милл Валли - определять, какова высота снежного покрова в Москве. По числу прошедших тестов. Короче: темное это дело. Можно делать только на тех системах, на которых хорошо и долго тестировали. Hа Форточках и Солярисе - можно. Hа Линухе - точно не рекомендуется. Hа FreeBSD 3.0 - ничего сказать не могу. Остальные хрен с ними - вопрос был о переносимом решении на Солярис/Линух/Фрю - отсюда следует и ответ: лучше не джойнтить. Hо можно и джойнить - проверив. Hо лучше - нет, лучше пивка попить. А еще лучше - коньячку. > -- > Best regards, -- Boris. -- Vladimir Butenko Stalker Software, Inc. --- ifmail v.2.14dev2 * Origin: Stalker Software, Inc. (2:5020/400@fidonet)

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру