bool is_valid(cl_program p) { global_mutex.lock(); const bool r = valid_programs.count(p) != 0 && p->valid(); if (r) p->lock(); global_mutex.unlock(); return r; }