of course... :-)... It really should be freed at exit only, But I agree, that should be explicit. will send a v2!
On 13 September 2016 at 13:25, Bill Fischofer <bill.fischo...@linaro.org> wrote: > > > On Tue, Sep 13, 2016 at 4:47 AM, Christophe Milard < > christophe.mil...@linaro.org> wrote: > >> The table containing the saved file-descriptors<->{context, key} couples >> is >> now dynamically malloc'd in the fd server process, hence avoiding >> the memory waste which happened in other process when the table was >> staticaly reserved in all processes. >> >> Signed-off-by: Christophe Milard <christophe.mil...@linaro.org> >> --- >> platform/linux-generic/_fdserver.c | 6 +++++- >> 1 file changed, 5 insertions(+), 1 deletion(-) >> >> diff --git a/platform/linux-generic/_fdserver.c >> b/platform/linux-generic/_fdserver.c >> index bf36eb2..6ad9f6e 100644 >> --- a/platform/linux-generic/_fdserver.c >> +++ b/platform/linux-generic/_fdserver.c >> @@ -73,7 +73,7 @@ typedef struct fdentry_s { >> uint64_t key; >> int fd; >> } fdentry_t; >> -static fdentry_t fd_table[FDSERVER_MAX_ENTRIES]; >> +static fdentry_t *fd_table; >> static int fd_table_nb_entries; >> >> /* >> @@ -622,6 +622,10 @@ int _odp_fdserver_init_global(void) >> /* TODO: pin the server on appropriate service cpu mask */ >> /* when (if) we can agree on the usage of service mask */ >> >> + /* allocate the space for the file descriptor<->key >> table: */ >> + fd_table = malloc(FDSERVER_MAX_ENTRIES * >> sizeof(fdentry_t)); >> > > Since you're changing from static to dynamic allocation, where is the > corresponding free() call? > > >> + >> + /* wait for clients requests */ >> wait_requests(sock); /* Returns when server is stopped */ >> close(sock); >> exit(0); >> -- >> 2.7.4 >> >> >