look below the code - the comment "I'm alredy in checking, Why launch a new check?" 
Why? For volatile it must be "launched". If the id (c_in_progress.id) repeates - the second passive check result will be discardes. (we don't want that?)