improve speed of bag occupied check
This commit is contained in:
parent
c3c3318b68
commit
016a4468eb
|
@ -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 *
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue