Mihai Barbulescu <[email protected]> writes: > 2013/6/6 Mihnea Dobrescu-Balaur <[email protected]>: >> Ce se întâmplă dacă procesul (în flow-ul normal) face acquire, și >> ”boom!” vine semnalul? SH-ul va încerca și el să facă acquire. >> Deadlock și adio. :) > > Multumesc, are sens si raspunde la intrebarea mea. Doream sa stiu _de > ce_ se fac afirmatiile: "Now since a signal handler can't use > semaphores, mutexes etc. and therefore can't access shared data " + > "You shouldn't access shared data from signal handler" > > Una e cu can't (adica nu se poate deloc - ma indoiesc - cred ca se pot > face apelurile) si alta e cu should not, adica recomandare din cauza a > ceea ce ai zis tu.
E un aspect de limbaj. În loc de "can't" consideră "must not". Soluția, dacă ai nevoie de acces exclusiv este dezactivarea semnalelor (sigprocmask) în porțiunea din programul tău în care accesezi datele comune. Atunci poți accesa inclusiv shared data. Evident, e recomandat să eviți asta, dar dacă nu ai de ales, doar dezactivarea semnalelor e soluția. Răzvan _______________________________________________ http://ocw.cs.pub.ro/courses/so/info/lista-discutii
