src/worker.h - weighttp

Data types defined

Source code

  1. /*
  2. * weighttp - a lightweight and simple webserver benchmarking tool
  3. *
  4. * Author:
  5. *     Copyright (c) 2009-2011 Thomas Porzelt
  6. *
  7. * License:
  8. *     MIT, see COPYING file
  9. */

  10. struct Stats {
  11.     ev_tstamp req_ts_min;    /* minimum time taken for a request */
  12.     ev_tstamp req_ts_max;    /* maximum time taken for a request */
  13.     ev_tstamp req_ts_total;    /* total time taken for all requests (this is not ts_end - ts_start!) */
  14.     uint64_t req_todo;        /* total number of requests to do */
  15.     uint64_t req_started;    /* total number of requests started */
  16.     uint64_t req_done;        /* total number of requests done */
  17.     uint64_t req_success;    /* total number of successful requests */
  18.     uint64_t req_failed;    /* total number of failed requests */
  19.     uint64_t req_error;        /* total number of error'd requests */
  20.     uint64_t bytes_total;    /* total number of bytes received (html+body) */
  21.     uint64_t bytes_body;    /* total number of bytes received (body) */
  22.     uint64_t req_1xx;
  23.     uint64_t req_2xx;
  24.     uint64_t req_3xx;
  25.     uint64_t req_4xx;
  26.     uint64_t req_5xx;
  27. };

  28. struct Worker {
  29.     uint8_t id;
  30.     Config *config;
  31.     struct ev_loop *loop;
  32.     char *request;
  33.     Client **clients;
  34.     uint16_t num_clients;
  35.     Stats stats;
  36.     uint64_t progress_interval;
  37. };


  38. Worker *worker_new(uint8_t id, Config *config, uint16_t num_clients, uint64_t num_requests);
  39. void worker_free(Worker *worker);
  40. void *worker_thread(void* arg);