From 50438b2c012365879f76b1e8d7b0112ef0ff7c29 Mon Sep 17 00:00:00 2001 From: Nemo D'ACREMONT Date: Fri, 11 Apr 2025 14:27:41 +0200 Subject: [PATCH] feat: add support for preemption --- Makefile | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index aa54c67..0b265d0 100644 --- a/Makefile +++ b/Makefile @@ -5,12 +5,12 @@ install_dir?=install # Comment out the bins that doesn't need to be compiled bbins+=$(wildcard ${tst_dir}/*.c) -bins=$(filter-out ${tst_dir}/51-fibonacci.c, ${bbins}) +bins=$(filter-out ${tst_dir}/51-fibonacci.c ${tst_dir}/71-preemption.c, ${bbins}) all_bins=01-main 02-switch 03-equity 11-join 12-join-main 21-create-many 22-create-many-recursive 23-create-many-once 31-switch-many 32-switch-many-join 33-switch-many-cascade 51-fibonacci 61-mutex 62-mutex 63-mutex-equity 64-mutex-join 71-preemption 81-deadlock bins_target=$(patsubst %.c,${build_dir}/%,${bins}) install_bins_targets=$(patsubst ${tst_dir}/%.c,${install_dir}/bin/%,${bins}) -install_bins_targets+=${install_dir}/bin/51-fibonacci +install_bins_targets+=${install_dir}/bin/51-fibonacci ${install_dir}/bin/71-preemption valgrind_targets=$(addprefix valgrind_,${all_bins}) @@ -76,7 +76,7 @@ ${valgrind_targets}: valgrind_%: ${build_dir}/${tst_dir}/% valgrind $^ ${check_argv} --leak-check=full --show-reachable=yes --track-origins=yes .PHONY: build -build: ${bins_target} ${build_dir}/libthread.so ${build_dir}/libthread.a +build: ${bins_target} ${build_dir}/libthread.so ${build_dir}/libthread.a ${build_dir}/${tst_dir}/51-fibonacci ${build_dir}/${tst_dir}/71-preemption .PHONY: debug debug: @@ -100,6 +100,9 @@ ${bins_target}: ${build_dir}/%: ${objs} ${build_dir}/%.o ${build_dir}/${tst_dir}/51-fibonacci: ${build_dir}/src/thread/thread_fibo.o ${build_dir}/${tst_dir}/51-fibonacci.o ${CC} -o $@ $^ ${CFLAGS} ./lib/libmimalloc ${LDFLAGS} +${build_dir}/${tst_dir}/71-preemption: ${build_dir}/src/thread/thread_preempt.o ${build_dir}/${tst_dir}/71-preemption.o + ${CC} -o $@ $^ ${CFLAGS} ./lib/libmimalloc ${LDFLAGS} + ${build_dir}/libthread.so: ${objs} ${CC} -o $@ -shared $^ ${CFLAGS} ${LDFLAGS} @@ -110,6 +113,10 @@ ${build_dir}/%_fibo.o: %.c @mkdir -p $(dir $@) ${CC} -o $@ -c $^ -DFIBO_STRAT ${CFLAGS} +${build_dir}/%_preempt.o: %.c + @mkdir -p $(dir $@) + ${CC} -o $@ -c $^ -DPREEMPTION ${CFLAGS} + ${build_dir}/%.o: %.c @mkdir -p $(dir $@) ${CC} -o $@ -c $^ ${CFLAGS}