worker.c 448 B

123456789101112131415161718192021222324252627
  1. #include "worker.h"
  2. #include <stdlib.h>
  3. void execute(worker * w)
  4. {
  5. w->fn_exec(w->argc, w->args, w->buf_return);
  6. }
  7. worker *new_worker(exec fn, int argc, char **args, int retc,
  8. char *return_buf)
  9. {
  10. worker *w = malloc(sizeof(worker));
  11. w->fn_exec = fn;
  12. w->argc = argc;
  13. w->args = args;
  14. w->buf_return = malloc(sizeof(char) * retc);
  15. return w;
  16. }
  17. void clear_worker(worker * w)
  18. {
  19. free(w->buf_return);
  20. free(w);
  21. }