Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
pthread_sigmask обработка сигналов из других потоков.
|
|||
|---|---|---|---|
|
#18+
Добрый день пишу небольшой сервер, передаю файл с помошью sendfile функции, в классе сервервера есть пул трейдов вот код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. Во время работы при вызове sendfile получаю SIGPIPE, для этого была и добавлена маска сигналов(как я понимаю маска сигналов наследуется и поэтому все они просто блокируют SIGPIPE) но хочется чтоб прошли дальше функции sigwait. Что надо сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2013, 21:36 |
|
||
|
pthread_sigmask обработка сигналов из других потоков.
|
|||
|---|---|---|---|
|
#18+
Katamaran1987, Нафик вам обрабатывать SIGPIPE? Это ж каменный век. Заигнорьте его при старте каждого потока, и вместо него обрабатывайте ошибки напосредственно при записи в конкретный сокет. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2013, 21:54 |
|
||
|
pthread_sigmask обработка сигналов из других потоков.
|
|||
|---|---|---|---|
|
#18+
Можно еще для конкретных сокетов игнорить через SO_NOSIGPIPE. Это если вы не контролируете старт потоков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2013, 21:57 |
|
||
|
pthread_sigmask обработка сигналов из других потоков.
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyKatamaran1987, Нафик вам обрабатывать SIGPIPE? Это ж каменный век. Заигнорьте его при старте каждого потока, и вместо него обрабатывайте ошибки напосредственно при записи в конкретный сокет. Код: plaintext 1. Я контролирую старт потоков, но вызов в теле потока функции signal(SIGPIPE, SIG_IGN); никчему не приводит, единственное решение которое я нашел является вводить маску,обработать SIGPIPE мне хочется ради интереса, потому что вот это Anatoly Moskovskyошибки напосредственно при записи в конкретный сокет. можно сделать всегда,это легкий путь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2013, 10:04 |
|
||
|
pthread_sigmask обработка сигналов из других потоков.
|
|||
|---|---|---|---|
|
#18+
Katamaran1987, Попробуй ловить SIGPIPE сигнал в потоке который делает sendfile. Сигнал синхронный, поставь обработчик на него в потоке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2013, 12:35 |
|
||
|
pthread_sigmask обработка сигналов из других потоков.
|
|||
|---|---|---|---|
|
#18+
OoCcKatamaran1987, Попробуй ловить SIGPIPE сигнал в потоке который делает sendfile. Сигнал синхронный, поставь обработчик на него в потоке.Пробовал ноль реакции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2013, 13:16 |
|
||
|
pthread_sigmask обработка сигналов из других потоков.
|
|||
|---|---|---|---|
|
#18+
OoCcKatamaran1987, Попробуй ловить SIGPIPE сигнал в потоке который делает sendfile. Сигнал синхронный, поставь обработчик на него в потоке. Вы имеете ввиду Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2013, 13:19 |
|
||
|
pthread_sigmask обработка сигналов из других потоков.
|
|||
|---|---|---|---|
|
#18+
Katamaran1987OoCcKatamaran1987, Попробуй ловить SIGPIPE сигнал в потоке который делает sendfile. Сигнал синхронный, поставь обработчик на него в потоке. Вы имеете ввиду Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ? Да, это. В правильных системах SIGPIPE приходит в тот же поток если там есть обработчик. Но не в линуксе. Кроме того в линуксе он не становится в ожидание (pending). Поэтому и sigwait не срабатывает. Как тебе уже советовал Anatoly - будь как все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2013, 21:52 |
|
||
|
pthread_sigmask обработка сигналов из других потоков.
|
|||
|---|---|---|---|
|
#18+
OoCcKatamaran1987пропущено... Вы имеете ввиду Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ? Да, это. В правильных системах SIGPIPE приходит в тот же поток если там есть обработчик. Но не в линуксе. Кроме того в линуксе он не становится в ожидание (pending). Поэтому и sigwait не срабатывает. Как тебе уже советовал Anatoly - будь как все.Благодарю, за понятный ответ, тему можно закрывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2013, 10:16 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38111490&tid=2020519]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
186ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 14ms |
| total: | 281ms |

| 0 / 0 |
