Я намагався зрозуміти тонкощі взаємодії потоків POSIX та сигналів POSIX. Мене, зокрема, цікавить:
- Який найкращий спосіб контролювати, до якого потоку подається сигнал (припускаючи, що це не фатально в першу чергу)?
- Який найкращий спосіб повідомити черговий потік (який насправді може бути зайнятий), що сигнал надійшов? (Я вже знаю, що це погана ідея використовувати змінні умови pthread від обробника сигналу.)
- Як я можу безпечно обробляти інформацію про те, що сигнал стався до інших потоків? Чи це повинно відбуватися в обробнику сигналу? (Я взагалі не хочу вбивати інші нитки; мені потрібен набагато тонший підхід.)
Для довідки про те, чому я хочу це, я досліджую, як перетворити пакет TclX на підтримку потоків, або розділити його і, принаймні, зробити деякі корисні частини допоміжних потоків. Сигнали - одна з тих частин, яка представляє особливий інтерес.