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

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

Hi!

как обойти действие SIGTOU на все треды ?
чтобы зависала только та нитка  который общается с диском, а не все

а то плодить процессы чтобы сделать диск асинхронным совсем не дело Жаль

(платформа  FreeBSD 4.7 - 4.10 )

Код:

в такой схеме взаимодействия
CLIENT ---sync--- NET )lo: --async--- SERVER --sync-- DB API ---sync--- DISK


sync/async - синхронный а синхронная работа
lo - localhost

как видно из схемы взаимодействие CLIENT-DISK  получается синхронным в итоге остальные клиенты SERVER будут ждать
Записан
npak
Команда клуба

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

« Ответ #1 : 18-11-2004 14:01 » 

comm, попробуй выставить для нитей, которые не работают с диском, разумный обработчик сигнала SIGTOU, который бы не подвешивал нити.
Записан

UniTesK -- индустриальная технология надежного тестирования.

http://www.unitesk.com/ru/
comm
Гость
« Ответ #2 : 18-11-2004 15:21 » new

Цитата: npak
comm, попробуй выставить для нитей, которые не работают с диском, разумный обработчик сигнала SIGTOU, который бы не подвешивал нити.


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

или ты имел ввиду маски сигналов ?
Записан
npak
Команда клуба

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

« Ответ #3 : 18-11-2004 15:53 » 

comm, в стандарте posix нить может управлять маской обработки сигнала сигнала отдельно от процесса.
см. pthread_sigmask

Правда, в Free BSD нити реализованы внутри процессов, поэтому может не сработать.  Попробуй.
Записан

UniTesK -- индустриальная технология надежного тестирования.

http://www.unitesk.com/ru/
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines