From 016a4468eb040509f899751fd84ffbf04e4ccf59 Mon Sep 17 00:00:00 2001 From: Jethro Grassie Date: Sun, 11 Oct 2020 05:08:23 -0400 Subject: [PATCH] improve speed of bag occupied check --- src/growbag.c | 9 ++++----- src/pool.c | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/growbag.c b/src/growbag.c index bc2c5f0..926c3c0 100644 --- a/src/growbag.c +++ b/src/growbag.c @@ -42,6 +42,7 @@ struct gbag_t char * b; char * n; char * ni; + char * no; gbag_recycle rc; gbag_moved mv; }; @@ -57,6 +58,7 @@ gbag_new(gbag_t **out, size_t count, size_t size, gb->b = (char*) calloc(gb->max, gb->z); gb->n = gb->b; gb->ni = gb->b; + gb->no = (char*) calloc(1, size); gb->rc = recycle; gb->mv = moved; *out = gb; @@ -76,6 +78,7 @@ gbag_free(gbag_t *gb) } } free(gb->b); + free(gb->no); gb->max = 0; gb->ref = 0; gb->b = NULL; @@ -89,11 +92,7 @@ gbag_free(gbag_t *gb) static inline int gbag_occupied(gbag_t *gb, char *el) { - char *s = el; - char *e = el + gb->z; - while (s < e) - if (*s++) return 1; - return 0; + return *el || memcmp(el, gb->no, gb->z); } void * diff --git a/src/pool.c b/src/pool.c index 5357e6a..26595d7 100644 --- a/src/pool.c +++ b/src/pool.c @@ -70,7 +70,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "uthash.h" #define MAX_LINE 8192 -#define CLIENTS_INIT 0x4000 +#define CLIENTS_INIT 8192 #define RPC_BODY_MAX 8192 #define JOB_BODY_MAX 8192 #define ERROR_BODY_MAX 512