Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

  if (cosmic_ray) {
     do_not_flip_bits()
  } else {
     flip_away()
  }


What if in the time between initialization of cosmic_ray to False, and the time this if statement executes, a legitimate cosmic ray flips the bool bit representing cosmic_ray?


This is a really good point and a common error in bit flip detection code. To avoid this kind of look-before-you-leap hazard the following is recommended:

    try {
        do_action()
    } catch (BitFlipError e) {
        logger.critical("Shouldn't get here")
    }
Ask-for-forgiveness as an error detection pattern avoids these kinds of errors entirely.


Simple! Make it an int.

  int cosmic_ray = 0
  if (bool(cosmic_ray)) {
     throw cosmicRayException()
  }


ah, a classic TORTOF bug (time-of-ray, time-of-flip)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: