Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Con velocità teoriche fino a 11 Gbps, gestione tramite app intelligente e protezione avanzata dei dispositivi, Roamii BE Pro porta il Wi‑Fi 7 tri‑band nelle abitazioni più esigenti. Un sistema Wi-Fi Mesh proposto da MSI allo scopo di garantire agli utenti una rete fluida e continua capace di sostenere streaming 8K, gaming competitivo e le applicazioni moderne più esigenti in termini di banda
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Mate X7 rinnova la sfida nel segmento dei pieghevoli premium puntando su un design ancora più sottile e resistente, unito al ritorno dei processori proprietari della serie Kirin. L'assenza dei servizi Google e del 5G pesa ancora sull'esperienza utente, ma il comparto fotografico e la qualità costruttiva cercano di compensare queste mancanze strutturali con soluzioni ingegneristiche di altissimo livello
Nioh 3: souls-like punitivo e Action RPG
Nioh 3: souls-like punitivo e Action RPG
Nioh 3 aggiorna la formula Team NINJA con aree esplorabili più grandi, due stili di combattimento intercambiabili al volo (Samurai e Ninja) e un sistema di progressione pieno di attività, basi nemiche e sfide legate al Crogiolo. La recensione entra nel dettaglio su combattimento, build, progressione e requisiti PC
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 03-10-2007, 21:00   #1
eaangi77
Junior Member
 
Iscritto dal: Oct 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 01:29.
eaangi77 è offline   Rispondi citando il messaggio o parte di esso
Old 04-10-2007, 11: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, 12: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 12:07.
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 05-10-2007, 00:55   #4
eaangi77
Junior Member
 
Iscritto dal: Oct 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, 10: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


Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo M...
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti Test in super anteprima di Navimow i220 LiDAR: i...
Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto Dark Perk Ergo e Sym provati tra wireless, softw...
Frodi deepfake fuori controllo: perch&ea...
Consumano il 30% in meno: arrivano i nuo...
Tesla Semi svela i numeri definitivi: 80...
La Air Force statunitense vieta occhiali...
Wi-Fi Intel e Windows: le novità ...
Dongfeng sbarca 'a casa loro': il nuovo ...
BYD ATTO 3 EVO: 3,9 secondi sullo 0-100 ...
Horizon 3 potrebbe arrivare tra 3-5 anni...
Spostare il 40% della produzione in USA?...
Project Panama: ecco come Anthropic ha d...
MrBeast entra nel fintech: Beast Industr...
Arrivano i nuovi server Bare Metal 2026 ...
Stop alla distribuzione dei driver di st...
Serie TV God of War: scelto anche l'atto...
Riot Games dimezza il team di 2XKO dopo ...
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: 15:43.


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