1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- #include <stdio.h>
- #include <stdlib.h>
- #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);
- }
|