#include #include #include "queue.h" #include "worker.h" void sum(int argc, char **values, char *buf_return) { if (argc != 2) { buf_return[0] = 0; return; } else { long int a = strtol(values[0], NULL, 10); long int b = strtol(values[1], NULL, 10); long int sum = a + b; sprintf(buf_return, "%d", sum); } } int main(int argc, char **argv) { worker *w, *x; queue *q; q = initialize_queue(); char *buf1, *buf2; char **params1 = malloc(sizeof(char *) * 2); params1[0] = "1"; params1[1] = "2"; w = new_worker(sum, 2, params1, 10, buf1); enqueue(q, w); char **params2 = malloc(sizeof(char *) * 2); params2[0] = "3"; params2[1] = "4"; w = new_worker(sum, 2, params2, 10, buf2); enqueue(q, w); x = dequeue(q); execute(x); printf("\nValue 1: %s", x->buf_return); x = dequeue(q); execute(x); printf("\nValue 2: %s", x->buf_return); return (0); }