feat: add support for preemption
This commit is contained in:
parent
964a810fad
commit
50438b2c01
13
Makefile
13
Makefile
@ -5,12 +5,12 @@ install_dir?=install
|
|||||||
|
|
||||||
# Comment out the bins that doesn't need to be compiled
|
# Comment out the bins that doesn't need to be compiled
|
||||||
bbins+=$(wildcard ${tst_dir}/*.c)
|
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
|
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})
|
bins_target=$(patsubst %.c,${build_dir}/%,${bins})
|
||||||
install_bins_targets=$(patsubst ${tst_dir}/%.c,${install_dir}/bin/%,${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})
|
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
|
valgrind $^ ${check_argv} --leak-check=full --show-reachable=yes --track-origins=yes
|
||||||
|
|
||||||
.PHONY: build
|
.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
|
.PHONY: debug
|
||||||
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
|
${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}
|
${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}
|
${build_dir}/libthread.so: ${objs}
|
||||||
${CC} -o $@ -shared $^ ${CFLAGS} ${LDFLAGS}
|
${CC} -o $@ -shared $^ ${CFLAGS} ${LDFLAGS}
|
||||||
|
|
||||||
@ -110,6 +113,10 @@ ${build_dir}/%_fibo.o: %.c
|
|||||||
@mkdir -p $(dir $@)
|
@mkdir -p $(dir $@)
|
||||||
${CC} -o $@ -c $^ -DFIBO_STRAT ${CFLAGS}
|
${CC} -o $@ -c $^ -DFIBO_STRAT ${CFLAGS}
|
||||||
|
|
||||||
|
${build_dir}/%_preempt.o: %.c
|
||||||
|
@mkdir -p $(dir $@)
|
||||||
|
${CC} -o $@ -c $^ -DPREEMPTION ${CFLAGS}
|
||||||
|
|
||||||
${build_dir}/%.o: %.c
|
${build_dir}/%.o: %.c
|
||||||
@mkdir -p $(dir $@)
|
@mkdir -p $(dir $@)
|
||||||
${CC} -o $@ -c $^ ${CFLAGS}
|
${CC} -o $@ -c $^ ${CFLAGS}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user