On 10/02/2016 17:40, Ladi Prosek wrote: >> >> >> On 10/02/2016 16:53, Ladi Prosek wrote: >>> + req->size = size; >>> + req->receive_entropy = receive_entropy; >>> + req->opaque = opaque; >>> + req->data = g_malloc(req->size); >>> + >>> + k->request_entropy(s, req); >>> + >>> + s->requests = g_slist_append(s->requests, req); >>> } >> >> g_slist_append has to traverse the entire list to find the place to add >> the node. You probably are better off using QSIMPLEQ (which is an >> intrusive list unlike GSList). > > This is what rng-egd does today and I would argue that since the expected > length of the list is very small - it's going to be longer than 1 only > very rarely - a simple lightweight data structure is a better choice than > trying to be O(1) in the worst case. > > I'll be happy to switch to QSIMPLEQ if you want though. Your call.
Ok, it can be done on top I guess. I'll let others review the patches more closely! Paolo