Initialize the library by using an Unikraft initcall instead of the
constructor attribute. This is to make sure that pthread-embedded is
initialized before Unikraft calls any application constructors and
after Unikraft initialized the depending scheduler.
Signed-off-by: Simon Kuenzer <simon.kuenzer@neclab.eu>
Reviewed-by: Sharan Santhanam <sharan.santhanam@neclab.eu>
#include <string.h>
#include <uk/essentials.h>
-#include <uk/ctors_prio.h>
+#include <uk/init.h>
#include <uk/arch/time.h>
#include <uk/arch/atomic.h>
#include <uk/print.h>
*
***************************************************************************/
-UK_CTOR_ATTR(UK_CTOR_PRIO_PTHREAD_EMBEDDED)
-int pthread_constructor(void)
+static int pthread_initcall(void)
{
- uk_pr_debug("pthread-embedded constructor\n");
+ uk_pr_debug("Initialize pthread-embedded\n");
return pthread_init();
}
+uk_lib_initcall(pthread_initcall);
pte_osResult pte_osInit(void)
{