[so] Curs 8

Razvan Deaconescu razvan.deaconescu at cs.pub.ro
Wed Apr 25 08:13:43 EEST 2012


Ionuț-Gabriel Radu <ihonius at gmail.com> writes:
> Am observat o neconcordanță între curs și laborator în legătură cu ce
> partajează firele de execuție și ce nu partajează firele de execuție.
>
> În curs, la pagina 15, se specifică faptul că masca de semnale este per
> proces, iar în slideul introductiv laboratorului 8 la pagina 2 scrie că
> masca de semnale este informație proprie firului de execuție.

Am șters din slide "masca de semnale". După cum spune în pagina de
manual (man 7 signal)[1]:
---
Each thread in a process has an independent signal mask, which indicates
the set of signals that the thread is currently blocking.  A thread can
manipulate its signal mask using pthread_sigmask(3).  In a traditional
single-threaded application, sigprocmask(2) can be used to manipulate
the signal mask.
---

Asta înseamnă că există o mască de semnale pe thread și este folosită cu
pthread_sigmask(3). Dacă, însă, folosești sigprocmask(2), atunci
gestionezi masca de semnale a întregului proces. Adică, depinzând de
API, poți folosi fie masca de semnale per thread, fie cea a
procesului. Există un nivel de ambiguitate în a spune că thread-urile
partajează sau nu masca de semnale. Nu există, însă, nici o ambiguitate în
a spune că există o mască de semnale per thread.

[1] http://www.kernel.org/doc/man-pages/online/pages/man7/signal.7.html

Răzvan


More information about the so mailing list