Torna indietro   Hardware Upgrade Forum > Software > Programmazione

ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz
ASUS ROG Swift OLED PG34WCDN è il primo monitor gaming con pannello QD-OLED Gen 5 a layout RGB Stripe Pixel e 360 Hz su 34 pollici: lo abbiamo misurato con sonde colorimetriche e NVIDIA LDAT. Ecco tutti i dati
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico
Nothing Phone (4a) Pro cambia pelle: l'alluminio unibody sostituisce la trasparenza integrale, portando una solidità inedita. Sotto il cofano troviamo uno Snapdragon 7 Gen 4 che spinge forte, mentre il display è quasi da top dig amma. Con un teleobiettivo 3.5x e la Glyph Matrix evoluta, è la prova di maturità di Carl Pei. C'è qualche compromesso, ma a 499EUR la sostanza hardware e la sua unicità lo rendono un buon "flagship killer" in salsa 2026
WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro
WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro
Con Midnight, Blizzard tenta il colpaccio: il player housing sbarca finalmente su Azeroth insieme a una Quel'Thalas ricostruita da zero. Tra il dramma della famiglia Ventolesto e il nuovo Prey System, ecco com'è la nuova espansione di World of Warcraft
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 21-07-2008, 03:14   #1
ceccoggi
Senior Member
 
Iscritto dal: Sep 2001
Messaggi: 1551
[C] Aiuto programmazione concorrente

Mi trovo in questa situazione:
- un primo sistema che produce un pezzo da assemblare ogni x secondi. Questo sistema è costituito da 4 sottosistemi che tale lavoro.
- un secondo sistema che lavora come il primo (anch'esso costituito da 4 sottosistemi)
- un assemblatore che una volta ottenuto un pezzo dal sist1 e uno dal sist2 li assembla. Consideriamo fino a 4 assemblatori paralleli.

A grandi linee ho 2 pipe, la prima permette ai figli del primo sistema di comunicare con l'assemblatore, e la seconda che fa lo stesso con il secondo sistema.
Ogni sottosistema produce un pezzo ogni x secondi generati casualmente.
Ogni volta che l'assemblatore legge dalla pipe, riempie una cella del vettore relativo al sistema che ha prodotto il pezzo (tale vettore ha 4 celle, come il num max di assemblatori).
Ogni volta che vedo che c'è una coppia vett1 e vett2 a 1, vuol dire che posso assemblare e lancio un altro figlio che faccia delle cose.

Ora il mio problema è che non mi aggiorna correttamente il vettore!
Per debuggare stampo il risultato del primo vettore, e al primo ciclo normalmente son tutti 0.
Una volta che viene prodotto un pezzo però dovrei avere il contenuto del vettore che si riempie mano a mano..però così non avviene..si riempie casualmente:|...e cosa ancor + strana...SI SVUOTA senza che nessuno gli azzeri le celle
Ecco il codice:

Codice:
while(1)
{
	
	printf(".\n");
	select (max, &fds, NULL, NULL, NULL);
	if (FD_ISSET(pipe1[0], &fds)){
		FD_SET (pipe2[0], &fds);
		read (pipe1[0], &buf, 1);			
		printf("prodotto pezzo da sottosistema 1\n");
		printf("vett1[%d %d %d %d]\n", vett1[0], vett1[1], vett1[2], vett1[3]);
		i=0;
		while((i<0)&&(vett1[i]==1))
			i++;
		vett1[i]=1;
		
		if(possoassemblare()>=0){
		
			cont++;
			printf("incrementato cont %d\n", cont);
			figlio();
		}
		if((cont1=ancoraposti1())>=0){
			sem_signal(s1);
			printf("%d posti liberi nel vett1\n", 4-cont1);
		}
	}
	else if (FD_ISSET(pipe2[0], &fds)){
		FD_SET (pipe1[0], &fds);
		read (pipe2[0], &buf, 1);		
		printf("prodotto pezzo da sottosistema 2\n");
		printf("vett2[%d %d %d %d]\n", vett2[0], vett2[1], vett2[2], vett2[3]);
		i=0;
		while((i<4)&&(vett2[i]==1))
			i++;
		vett2[i]=1;
				
		if(possoassemblare()>=0){
			
			cont++;
			printf("incrementato cont %d\n", cont);
			figlio();

		if((cont2=ancoraposti2())>=0){
			sem_signal(s2);
			printf("%d posti liberi nel vett2\n", 4-cont2);
		}
	}
}
Cos'è che non va?
__________________
myFlickr
ceccoggi è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz ASUS ROG Swift OLED PG34WCDN recensione: il prim...
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico Recensione Nothing Phone (4a) Pro: finalmente in...
WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro WoW: Midnight, Blizzard mette il primo, storico ...
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato Ecovacs Goat O1200 LiDAR Pro: la prova del robot...
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere? Recensione Samsung Galaxy S26+: sfida l'Ultra, m...
Secondo Elon Musk FSD è più...
Anche Cloudflare fissa il 2029 per la si...
Hacker sfruttano da mesi un bug segreto ...
ASUSTOR Lockerstor 24R Pro Gen2: 24 bay ...
Rigetti supera la soglia dei 100 qubit: ...
eFootball raggiunge il miliardo di downl...
Come provare OpenClaw facilmente grazie ...
Microsoft conferma: questo glitch dell'o...
Toyota bZ7: una berlina da oltre 5 metri...
Artemis II, le prime foto del lato nasco...
Sempre più pubblicità su YouTube: arriva...
Polestar fa +80% in Italia e tocca quota...
Il tuo Mac smette di connettersi a Inter...
La nuova alleanza Intel-Google ridefinis...
Energia troppo cara, regole da rivedere:...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 18:38.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v