Newsgroup: it.comp.os.linux.development
Titolo: Domanda pseudoteorica thread

Hail!
Diciamo che ho un certo n di thread e un buffer. Tutti questi thread devono
leggere/scrivere/modificare dati in questo buffer. La sincronizzazione viene
fatta con semafori e non e' un problema.
Quello che ho fatto e' stato dichiarare una variabile globale e tutti i
thread la smanazzano. Strano ma vero funziona pure :-)
C'e' qualcosa di meno macellaio e piu' fighetto? Oppure diciamo qualcosa di
piu' giusto?
--
        Giuseppe "Cowo" Corbelli  -->>  Riding on Linux-2.2.16
    **ANTI-SPAM** -- **Substitute IHATESPAM with cowo to reply by mail**
  -<! *Real* programmers use cat > a.out! No way, /real/ ones
        use zcat > a.out 'cause you can type faster that way. !>-
                -- from a Slashdot discussion

 piu' giusto?
il concetto resta quello, ma hai usato i mutex o che altro?
Ciao
-- 
Simone Piccardi
Microsoft is NOT the answer. Microsoft is the Question.
The answer is: "NO!"

il concetto resta quello, ma hai usato i mutex o che altro?
Semafori.
sem_t sem_read, sem_write, sem_encode;
In generale volevo sapere se e' possibile usare una zona di memoria con
indirizzo variabile.
Piu' per sfizio che per altro starei valutando una patch a cdparanoia per
l'utilizzo dei thread. Si' lo so che sono malato che non servirebbe a un
ca**o che butto via il mio tempo ecc... :-))
Solo che: la funzione principale di lettura dei settori alloca la mem per
gli affari suoi e mi restituisce il ptr ai dati. Ogni richiesta di lettura
conduce quindi a un nuovo ptr. Ok, posso copiare i dati da quella zona a un
buffer che alloco e realloco io per gli affari miei ma allora quel minimo di
efficienza che guadagno va a finire che lo riperdo subito. C'e' qualche
soluzione praticabile senza smanazzare la funzione principale che
restituisce il puntatore? Sarebbe difficile senza doc metterci le mani e
penso che Monty mi segherebbe una mano se gli proponessi una cosa del genere.
-- 
        Giuseppe "Cowo" Corbelli  -->>  Riding on Linux-2.2.16
    **ANTI-SPAM** -- **Substitute IHATESPAM with cowo to reply by mail**
DOS - Defective Operating System
IBM - I Blame Microsoft
BASIC - Bill's Attempt to Seize Industry Control
WINDOWS - Will Install Needless Data On Whole System
MICROSOFT - Most Intelligent Customers Realize Our Software Only Fools Teenagers

 piu' giusto?
Astrarre scrittura e lettura tramite un paio di funzioni, ma le cose si
fanno sostanzialmente cosi`.
-- 
  /Kinkie
Se sulla scatola c'e` scritto "Per windows 95 e superiori", dovrebbe
funzionare sotto Linux, vero?

fanno sostanzialmente cosi`.
OK quello l'ho fatto subito naturalmente. C'e' la possibilita' di usare
qualcos'altro tipo shmget (per condividere fra processi funziona, e fra
thread? Oppure e' una porcata?) oppure passare i dati con dei messaggi IPC?
O lascio stare e tengo le cose cosi' come stanno?
-- 
  Giuseppe "Cowo" Corbelli > Riding On Linux 2.2.12
    -<= A Metal Heart Is Hard To Tear Apart =>-
  Address Modified! Substitute IHATESPAM with cowo

 O lascio stare e tengo le cose cosi' come stanno?
Tu vuoi proprio complicarti la vita, vero?


Tu vuoi proprio complicarti la vita, vero?
No, non ci tengo :-) Diciamo che prendo la tua risposta come: lascia stare
che va bene cosi'.
Volevo solo avere un'idea generale di come poter fare. apropos la pthread su
quali sistemi e' portabile? apropos2 oltre a solaris quali os hanno i thread
a liv kernel?


 oltre a solaris quali os hanno i thread a liv kernel?
1) Piu` o meno tutti, alla peggio con delle librerie userlevel.
2) Windows NT/2000 (ebbene si`), HP/UX 10.20 e
11, BeOS, penso anche AIX 4.3. Probabilemente anche altri.


 11, BeOS, penso anche AIX 4.3. Probabilemente anche altri.
Ed ovviamente Linux.


Ed ovviamente Linux.
Immagino con clone(). Hai qualche esempio di utilizzo per le mani?
--
  	Giuseppe "Cowo" Corbelli  -->>  Riding on Linux-2.2.16
    **ANTI-SPAM** -- **Substitute IHATESPAM with cowo to reply by mail**
  -<! Computer programmers never die, they just get lost in the processing. !>-

 Immagino con clone(). Hai qualche esempio di utilizzo per le mani?
clone() no, ma esiste nella glibc un layer di emulazione pthreads che anche
se non eccezionale se la cavicchia.
