void FUN_000195d0(undefined4 param_1)

{
  bool bVar1;
  int iVar2;
  int iVar3;
  timespec local_20;
  
  iVar3 = 0;
  while( true ) {
    iVar2 = _test_and_set(param_1,1);
    bVar1 = iVar3 < 0x32;
    iVar3 = iVar3 + 1;
    if (iVar2 == 0) break;
    if (bVar1) {
      sched_yield();
    }
    else {
      local_20.tv_sec = 0;
      local_20.tv_nsec = 0x1e8481;
      iVar3 = 0;
      nanosleep(&local_20,(timespec *)0x0);
    }
  }
  return;
}