| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Программирование под Unix/Linux > Пропуск оператора в потоке |
| Автор: GorbunovDiman 5.3.2011, 21:14 |
| Здраствуйте! У меня такой вопрос: Есть поток, в нем у одного оператора есть таймаут(короче select для сокетов) Можно ли сделать так, чтобы один поток(управляющий) заставил другой(в котором select) не дожидаться окончания выполнения этого опрератора, а переходить к следующему за ним? |
| Автор: bsa 5.3.2011, 22:17 |
| GorbunovDiman, нет. |
| Автор: GorbunovDiman 6.3.2011, 11:04 |
| А хотя-бы, можно ли заставить искуственно сработать таймаут у select'а? Или, хотя-бы, добовлять дескрипторы в множество из другого потока на "лету"(хотя это, на мой взгляд, черевато ошибками)? |
| Автор: bsa 7.3.2011, 23:59 |
| GorbunovDiman, поставь небольшой таймаут и обновляй список периодически. |
| Автор: GorbunovDiman 8.3.2011, 15:01 | ||
А можно то-же самое но по подробнее , а то я не совсем понял У меня появился ещё такой вариант: Создать стопсокет и записать его дискриптор в множество exceptfds select'а . НО! Кукую можно сделать безабидную ошибку в этом сокете, чтобы и select сработал , и программа не упала? Добавлено через 1 минуту и 34 секунды А что такое пайп вообще? |
| Автор: GorbunovDiman 8.3.2011, 18:24 | ||
Этот ваариант оказался рабочим ! Сделал парный сокет AF_UNIX и записал его дискриптор в readfds(а не exceptfds). Получилась так называемая локальная петля.Но кто нибудь знает как это отражается на времени работы? И есть ли простые методы работующие быстрее? |
| Автор: bsa 8.3.2011, 20:45 |
| GorbunovDiman, пайп (канал) - это что-то вроде одностороннего неименованного сокета. Читай mkpipe. Вариант с пайпами лучше, чем с сокетами - так как проще организуется. |
| Автор: GorbunovDiman 9.3.2011, 20:14 | ||
А как это переносится на другие платформы? |
| Автор: MAKCim 10.3.2011, 12:27 |
хуже, чем сокеты ;) |