Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: pthreads, BSD и файловые блокировки  (Прочитано 10061 раз)
0 Пользователей и 1 Гость смотрят эту тему.
comm
Гость
« : 07-10-2004 09:55 » 

Народ! хелп!

почему при ожидании записи в файл одной ниткой засыпает весь процесс ??

это можно как-то обойти ? чтобы нитки вели себя как процессы но только с общим адресным пространством

платформа BSD,
собираю с ключами -pthread -D_REENTRANT -D__STL_THREADS
Записан
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #1 : 07-10-2004 16:48 » 

comm, такого быть не может по идее только если у тебя в коде гдето недочёт хотя утвержать не могу. Потоки и так ведут себя как процессы(почти) в линуксе они долгое время процессами и были  Отлично а в BSD потоки по лучше организованны насколько я знаю
По смотри в нете книгу Advaced Linux Programing там есть описание работы с потоками может поможет.
Записан

Странно всё это....
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 07-10-2004 17:33 » 

comm, какой ф-ией ты делаешь блокировку?

По POSIX вот:
http://www.opengroup.org/onlinepubs/009695399/functions/flockfile.html

Кстати, BSD - BSD-ой, а их много. Какая именно? FreeBSD?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
comm
Гость
« Ответ #3 : 07-10-2004 18:11 » 

Цитата: RXL
comm, какой ф-ией ты делаешь блокировку?

По POSIX вот:
http://www.opengroup.org/onlinepubs/009695399/functions/flockfile.html

Кстати, BSD - BSD-ой, а их много. Какая именно? FreeBSD?


не flock'и я явно не использую

платформа FreeBSD

между нитками используется обмен через STL::queue с блокировками через мутехи  в момент записи и удаления элемента

могут ли сигналы типа SIGTOU и тд влиять на ВСЕ нитки сразу, а не только на записывающую нитку ?
(просто операции записи на диск у меня весьма тормозные, нагрузка высокая)
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 07-10-2004 18:26 » 

POSIX о сигналах:
http://www.opengroup.org/onlinepubs/009695399/functions/xsh_chap02_04.html

Конечно, конкретная ОС может работать не точно по POSIX - стоит заглянуть в доки.

Посмотри еще тут:
http://www.opengroup.org/onlinepubs/009695399/basedefs/signal.h.html
См. первую табличку, насчет SIGTTOU, и расшифровку под ней.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 07-10-2004 19:12 » 

Если я не ошибаюсь (в доку заглядывать уже лень - спать пора), сигнал получает процесс. Значит и остановлен должен быть процесс, а не отдельный поток.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines