qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] rng: switch request queue to QSIMPLEQ


From: Ladi Prosek
Subject: Re: [Qemu-devel] [PATCH] rng: switch request queue to QSIMPLEQ
Date: Fri, 4 Mar 2016 09:04:22 +0100

On Fri, Mar 4, 2016 at 7:27 AM, Amit Shah <address@hidden> wrote:
> On (Thu) 03 Mar 2016 [14:16:11], Ladi Prosek wrote:
>> QSIMPLEQ supports appending to tail in O(1) and is intrusive so
>> it doesn't require extra memory allocations for the bookkeeping
>> data.
>>
>> Suggested-by: Paolo Bonzini <address@hidden>
>> Signed-off-by: Ladi Prosek <address@hidden>
>
>> @@ -83,24 +83,27 @@ static void rng_backend_free_request(RngRequest *req)
>>
>>  static void rng_backend_free_requests(RngBackend *s)
>>  {
>> -    GSList *i;
>> +    RngRequest *req, *next;
>>
>> -    for (i = s->requests; i; i = i->next) {
>> -        rng_backend_free_request(i->data);
>> +    QSIMPLEQ_FOREACH_SAFE(req, &s->requests, next, next) {
>> +        rng_backend_free_request(req);
>>      }
>>
>> -    g_slist_free(s->requests);
>> -    s->requests = NULL;
>> +    QSIMPLEQ_INIT(&s->requests);
>>  }
>
> This init here isn't necessary, the accessors for the queue will take
> care of this.

We are basically purging the queue here and we want to leave it in a
consistent state. Without the QSIMPLEQ_INIT the queue head would
become a pair of dangling pointers. Let me know if I misunderstood
your comment.

>
>                 Amit



reply via email to

[Prev in Thread] Current Thread [Next in Thread]