Boston Linux & Unix (BLU) Home | Calendar | Mail Lists | List Archives | Desktop SIG | Hardware Hacking SIG
Wiki | Flickr | PicasaWeb | Video | Maps & Directions | Installfests | Keysignings
Linux Cafe | Meeting Notes | Blog | Linux Links | Bling | About BLU

BLU Discuss list archive


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Pthreads meeting



Last night I went through the client-server queuing example very quickly so 
I want to tie up a loose end, possibly. 
In general, what happens with a condition is:
lock mutex
test predicate
If the predicate is false:
	wait on the condition.
	Test the predicate after coming out of the wait. 
	If the predicate is false, then go back to the wait.
At this point the predicate is true and the mutex is acquired. 
Perform the required processing (in our case, remove data from queue).
unlock the mutex.
Perform any additional processing - in our case, write the data to the 
output file.
go back to step 1.

In the example, the predicate consists of two things, the RunFlag that tells 
the thread to terminate, and the number of elements on the queue. If the 
queue contains > 0 elements the thread removes the data from the queue and 
writes it to the file. 

If the RunFlag is set, it means that the server has detected an end of file, 
so terminate the thread. 

-- 
Jerry Feldman <gaf at blu.org>
Boston Linux and Unix user group
http://www.blu.org PGP key id:C5061EA9
PGP Key fingerprint:053C 73EC 3AC1 5C44 3E14 9245 FB00 3ED5 C506 1EA9




BLU is a member of BostonUserGroups
BLU is a member of BostonUserGroups
We also thank MIT for the use of their facilities.

Valid HTML 4.01! Valid CSS!



Boston Linux & Unix / webmaster@blu.org