blob: 65209437ace15f01db5ca84a5f24ef6e9dbea19e (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
/*
* vim:ts=4:sw=4:expandtab
*
* © 2010 Michael Stapelberg
*
*/
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include "queue.h"
/*
* Conv-Prozess. Generiert Zufallszahlen und schickt sie an den Log-Prozess
* sowie an den Statistik-Prozess.
*
*/
void conv() {
int number;
struct msg *first;
struct msg *second;
while (1) {
/* Zufallszahl generieren */
number = rand();
/* Zahl zweimal in die Queue schreiben: Einmal zum loggen, einmal für
* den Statistik-Prozess */
first = queue_write(D_CONV_TO_LOG, number);
second = queue_write(D_CONV_TO_STAT, number);
/* Warten, bis die Zufallszahl aus der Queue geholt wurde */
while (first->dir == D_CONV_TO_LOG ||
second->dir == D_CONV_TO_STAT)
usleep(1);
}
}
/*
* Cleanup-Funktion. Beendet den Prozess.
*
*/
void conv_cleanup() {
_exit(EXIT_SUCCESS);
}
|