@@ -1,7 +1,7 @@ /* - * Copyright (c) 2008-2021 Jonathan Schleifer + * Copyright (c) 2008-2022 Jonathan Schleifer * * All rights reserved. * * This file is part of ObjFW. It may be distributed under the terms of the * Q Public License 1.0, which can be found in the file LICENSE.QPL included in @@ -30,9 +30,17 @@ #endif #ifdef __cplusplus extern "C" { #endif -extern void OFOnce(OFOnceControl *control, void (*func)(void)); +/** + * @brief Executes the specified function exactly once in the application's + * lifetime, even in a multi-threaded environment. + * + * @param control An OFOnceControl. This should be a static variable + * preinitialized to `OFOnceControlInitValue`. + * @param function The function to execute once + */ +extern void OFOnce(OFOnceControl *control, void (*function)(void)); #ifdef __cplusplus } #endif