Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione HONOR Magic V6: spessore record e super batteria. È lui il fold da battere?
Recensione HONOR Magic V6: spessore record e super batteria. È lui il fold da battere?
HONOR Magic V6 è arrivato in Italia a 2.299,90 euro con una promessa precisa: unire 4 mm di spessore da aperto (8,75 mm chiuso nel modello White, 9 mm negli altri colori) a una batteria da 6.660 mAh, la più capiente mai vista su un pieghevole. Lo abbiamo usato per oltre una settimana in versione Red 16/512 GB per capire se lo Snapdragon 8 Elite Gen 5 tiene testa alla concorrenza anche fuori dai benchmark ufficiali
Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni
Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni
Redmi Pad 2 9.7 punta su un display ampio e fluido, una batteria capace di accompagnare l'uso quotidiano senza ansie da ricarica e un prezzo accessibile, a partire da 179,90 euro per la versione con 64 GB di storage. Lo Snapdragon 6s 4G Gen 2 e i 4 GB di RAM della configurazione più diffusa frenano però chi cerca reattività e multitasking spinto: ecco il bilancio dopo due settimane di prova diretta
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Polygon è la concept car di Peugeot che mostra il futuro delle soluzioni del segmento B: tra design compatti e innovativi affiancati da dimensioni compatte uno scherzo dalla manovrabilità incredibile per le manovre a bassa velocità
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 03-10-2007, 20:00   #1
eaangi77
Junior Member
 
Iscritto dal: Sep 2007
Messaggi: 7
[C] ADDORMENTARE E SVEGLIARE UN PROCESSO

Ciao scusate il disturbo ho un problema,

ho un processo addormentato con pause() che ha creato 4 thread , vorrei risvegliarlo ma utilizzando kill(0,0) non funziona.

Qualcuno può aiutarmi grazie.



Posto il codice.

void controllore(){
while ("true"){
msgrcv (ID_CODA, &messaggio_ricevuto, 5, 1 , MSG_NOERROR );

if (messaggio_ricevuto.mtext == 0){
printf("CONTROLORE SVEGLIA IL CUOCO \n");
raise(SIGUSR1);
}

}
}


static void gestioneSegnali(int segnale){
printf("SEGNALE CATTURATO");
segnalep = 1;
return ;

}


int main() {

ipc_key_coda = ftok(".", 'a');
ID_CODA = msgget(3, IPC_CREAT | 0600);

ipc_key = 1;
sem_id_camerieri = MutexCreate(ipc_key);

f_lettura_portate_ordinate = fopen ( "./portateOrdinate" , "r" );

signal(SIGUSR1,gestioneSegnali);

do{
if (f_lettura_portate_ordinate){

if (!feof(f_lettura_portate_ordinate)){
printf("Portata Lavorata: %s \n", &portata);
printf("\n");
fgets(&portata, 50, f_lettura_portate_ordinate);
sleep(2);

}else{

printf("ADDORMENTA CUOCO \n");
while (segnalep==0) ; //pause(); Pause non risvegliato dal segnale!!! Problema con i thread
printf("CUOCO SVEGLIATO\n");
segnalep=0;
fgets(&portata, 50, f_lettura_portate_ordinate);


}

} else {
printf("ERRORE NELL'APERTURA DEL FILE \n");
}


}while ("true");

printf("TERMINE CUOCO \n");

fclose(f_lettura_portate_ordinate);

return 0;

}

Ultima modifica di eaangi77 : 04-10-2007 alle 00:29.
eaangi77 è offline   Rispondi citando il messaggio o parte di esso
Old 04-10-2007, 10:58   #2
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
kill(pid, 0) controlla solo che il processo esista, non invia nessun segnale.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 04-10-2007, 11:04   #3
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Ah e la raise invia il segnale al thread corrente, non al thread principale. La documentazione dice che è implementato come kill(getpid(), ...) ma scommetterei che in realtà usa kill(gettid(), ...).
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12

Ultima modifica di ilsensine : 04-10-2007 alle 11:07.
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 04-10-2007, 23:55   #4
eaangi77
Junior Member
 
Iscritto dal: Sep 2007
Messaggi: 7
Ok, quindi cosa dovrei usare secondo te per far risvegliare il processo

Così il segnale è inviato e gestito e con il ciclo while (segnalep==0) funziona, però con la pause() niente...

Boh

Puoi aiutarmi. Grazie
eaangi77 è offline   Rispondi citando il messaggio o parte di esso
Old 08-10-2007, 09:18   #5
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Puoi usare una esplicita kill(getpid(), SIGUSR1), ma ti consiglierei per motivi di portabilità di usare la pthread_kill:

Codice:
pthread_t main_thread;

int main()
{
...
  main_thread = pthread_self();
...
}

void altro_thread()
{
...
  pthread_kill(main_thread, SIGUSR1);
...
}
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione HONOR Magic V6: spessore record e super batteria. È lui il fold da battere? Recensione HONOR Magic V6: spessore record e sup...
Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni Redmi Pad 2 9.7: ampio display, economico e peso...
Peugeot Polygon Concept: ecco il futuro delle utilitarie Peugeot Polygon Concept: ecco il futuro delle ut...
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione Reno16 Pro: il compatto di OPPO punta su fotocam...
 Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco Hisense 55U7SE: tuttofare e accessibile, il Min...
25 articolazioni, pelle tattile e forza ...
Creato un chip quantistico in cui la mem...
Torna la migliore e-bike in carbonio del...
NVIDIA H200 in Cina, si apre uno spiragl...
GPT-5.6 per tutti, Codex dentro ChatGPT:...
Le 10 offerte TOP Amazon del weekend in ...
Polestar chiude il miglior primo semestr...
Panasonic S45 e S55 in offerta da 189€: ...
Lefant M5 MAX crolla a 449€: rullo da 20...
Nuova Jeep Avenger elettrica: prima prov...
Le vere offerte sui portatili in Amazon:...
SK Hynix debutta a Wall Street con una r...
QuTech annuncia Tuna-17, un processore q...
Chat Control: il Parlamento europeo viet...
vivo Watch GT 2: stile, salute e autonom...
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: 11:23.


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