Estratto del documento

Pthread_cond_signal e pthread_cond_broadcast

Nome

pthread_cond_signal, pthread_cond_broadcast - Signal o broadcast di una condizione

Sintesi

#include <pthread.h>
int pthread_cond_signal(pthread_cond_t *cond);
int pthread_cond_broadcast(pthread_cond_t *cond);

Descrizione

Queste due funzioni sono utilizzate per sbloccare i thread bloccati su una variabile di condizione. La chiamata a pthread_cond_signal() sblocca almeno uno dei thread che sono bloccati sulla variabile di condizione specificata cond (se ci sono thread bloccati su cond).

La chiamata a pthread_cond_broadcast() sblocca tutti i thread attualmente bloccati sulla variabile di condizione specificata cond. Se più di un thread è bloccato su una variabile di condizione, la politica di scheduling determina l'ordine in cui i thread vengono sbloccati.

Quando ciascun thread sbloccato come risultato di una pthread_cond_signal() o pthread_cond_broadcast() ritorna dalla sua chiamata a pthread_cond_wait() o pthread_cond_timedwait(), il thread possiede il mutex con cui ha chiamato pthread_cond_wait() o pthread_cond_timedwait(). I thread sbloccati contendono per il mutex secondo la politica di scheduling (se applicabile), come se ciascuno avesse chiamato pthread_mutex_lock().

Le funzioni pthread_cond_signal() o pthread_cond_broadcast() possono essere chiamate da un thread indipendentemente dal possesso del mutex che i thread che chiamano pthread_cond_wait() o pthread_cond_timedwait() hanno associato con la variabile di condizione durante le loro attese; tuttavia, se è richiesto un comportamento di scheduling prevedibile, allora quel mutex è bloccato dal thread che chiama pthread_cond_signal() o pthread_cond_broadcast().

Le funzioni pthread_cond_signal() e pthread_cond_broadcast() non hanno effetto se non ci sono thread attualmente bloccati su cond.

Valore di ritorno

Se hanno successo, le funzioni pthread_cond_signal() e pthread_cond_broadcast() restituiscono zero. In caso contrario, viene restituito un numero di errore per indicare l'errore.

Errori

Le funzioni pthread_cond_signal() e pthread_cond_broadcast() possono fallire se:

  • [EINVAL] Il valore cond non si riferisce a una variabile di condizione inizializzata.

The Single UNIX ® Specification, Version 2 Copyright © 1997 The Open Group

Anteprima
Vedrai una selezione di 1 pagina su 2
Sistemi operativi - Syscall pthread_cond_signal Pag. 1
1 su 2
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher N. A. di informazioni apprese con la frequenza delle lezioni di Sistemi operativi e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli studi di Napoli Federico II o del prof Cotroneo Domenico.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community