我的解释对下面的代码(malloc.c)是否正确?

时间:2019-03-28 07:13:47

标签: malloc

我将分析glibc-2.25 malloc.c代码。我对此代码相关的fastbin进程有疑问。我想知道的是在while循环中。

我认为catomic_compare_and_exchange_val_acq的返回值是受害者,而while循环始终为false。我的解释是对的吗?

  if ((unsigned long) (nb) <= (unsigned long) (get_max_fast ()))
    {
      idx = fastbin_index (nb);
      mfastbinptr *fb = &fastbin (av, idx); 
      mchunkptr pp = *fb;
      do
        {
          victim = pp;
          if (victim == NULL)
            break;
        }
      while ((pp = catomic_compare_and_exchange_val_acq (fb, victim->fd, victim)) != victim);

我希望谁能告诉我有关while_condition的详细信息

0 个答案:

没有答案