Basic pthread_create implementation

This commit is contained in:
Mylloon 2024-03-15 12:43:44 +01:00
parent 07209452aa
commit 4eadb9fc98
Signed by: Anri
GPG key ID: A82D63DFF8D1317F

View file

@ -1,9 +1,28 @@
#include "../includes/sched.h" #include "../includes/sched.h"
#include <pthread.h>
#include <stdio.h>
int sched_init(int nthreads, int qlen, taskfunc f, void *closure) { int sched_init(int nthreads, int qlen, taskfunc f, void *closure) {
return -1; sched_spawn(f, closure, NULL);
return 0;
} }
int sched_spawn(taskfunc f, void *closure, struct scheduler *s) { int sched_spawn(taskfunc f, void *closure, struct scheduler *s) {
pthread_t thread;
int errno;
// Création d'un thread pour la tâche
if ((errno = pthread_create(&thread, NULL, (void *)f, closure)) != 0) {
fprintf(stderr, "pthread_create error %d\n", errno);
return -1; return -1;
}
// Attend la fin du thread
if ((errno = pthread_join(thread, NULL)) != 0) {
fprintf(stderr, "error %d\n", errno);
return -1;
}
return 0;
} }