summaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authorGravatar Hector Martin2009-10-12 06:10:50 +0200
committerGravatar Hector Martin2009-10-12 06:10:50 +0200
commit07378b9203f949fb7a475115051edb09f134d8ff (patch)
treefe787e4a29d23c1718264fbec7feb58377944ccd /common
parentac37795c7cca4d297ff860678a4197ee94d80f20 (diff)
downloadusbmuxd-07378b9203f949fb7a475115051edb09f134d8ff.tar.gz
usbmuxd-07378b9203f949fb7a475115051edb09f134d8ff.tar.bz2
optimize: persist fdlist for duration of main_loop
constant malloc and realloc was wasting lots of time
Diffstat (limited to 'common')
-rw-r--r--common/utils.c5
-rw-r--r--common/utils.h1
2 files changed, 6 insertions, 0 deletions
diff --git a/common/utils.c b/common/utils.c
index 6803941..f66d889 100644
--- a/common/utils.c
+++ b/common/utils.c
@@ -65,6 +65,11 @@ void fdlist_free(struct fdlist *list)
list->fds = NULL;
}
+void fdlist_reset(struct fdlist *list)
+{
+ list->count = 0;
+}
+
void collection_init(struct collection *col)
{
col->list = malloc(sizeof(void *));
diff --git a/common/utils.h b/common/utils.h
index ad4ac9d..f9cfa93 100644
--- a/common/utils.h
+++ b/common/utils.h
@@ -39,6 +39,7 @@ struct fdlist {
void fdlist_create(struct fdlist *list);
void fdlist_add(struct fdlist *list, enum fdowner owner, int fd, short events);
void fdlist_free(struct fdlist *list);
+void fdlist_reset(struct fdlist *list);
struct collection {
void **list;