It depends a little on what kind of condition you are working with and how the eye-tracker is set up. Basically, the ideal solution is that check_something() looks at all the samples the eye-tracker has recorded since the last time check_something() was called (i.e., checks a buffer rather than just the most recent data). Then you only need to call check_something() once per frame anyway.
There’s a solution along these lines here assuming the relevant functions still work: Retrieve Fixation Events using Iohub - #3 by sol