diff --git a/emper/Fibril.hpp b/emper/Fibril.hpp
index 2be6c341da98978db544e6bfb31600aa30fa96b7..de43069eebf9733215fe989b228e740db5ae3fa8 100644
--- a/emper/Fibril.hpp
+++ b/emper/Fibril.hpp
@@ -227,7 +227,7 @@ class Fibril : public AbstractFiber, public Logger<LogSubsystem::FIBRIL> {
 		LOGD("constructed " << *this);
 	}
 
-	~Fibril() override { join(); }
+	~Fibril() override { sync(); }
 
 	auto asFibrilIfPossible() -> Fibril* override { return this; }
 
@@ -252,7 +252,7 @@ class Fibril : public AbstractFiber, public Logger<LogSubsystem::FIBRIL> {
 	// ContextManager::start() invokes tryResumeFibril(uint32_t), let's be friends.
 	friend void ContextManager::start();
 
-	__attribute__((noinline, hot, optimize(3))) void doJoin() {
+	__attribute__((noinline, hot, optimize(3))) void doSync() {
 		cont.ip = __builtin_return_address(0);
 
 		toResume = this;
@@ -296,8 +296,8 @@ class Fibril : public AbstractFiber, public Logger<LogSubsystem::FIBRIL> {
 
  public:
 	template <class RET, class... PARs, class... ARGs>
-	inline __attribute__((always_inline)) void fork(RET* ret, RET (*fun)(PARs...), ARGs... args) {
-		auto fork_func = [](ARGs... args, Fibril * fr, RET * ret, RET(*fun)(PARs...))
+	inline __attribute__((always_inline)) void spawn(RET* ret, RET (*fun)(PARs...), ARGs... args) {
+		auto spawn_func = [](ARGs... args, Fibril * fr, RET * ret, RET(*fun)(PARs...))
 				__attribute__((noinline, hot, optimize(3))) {
 			fr->cont.ip = __builtin_return_address(0);
 			bool pushed = fr->runtime.scheduler.pushBottom(*fr);
@@ -306,12 +306,12 @@ class Fibril : public AbstractFiber, public Logger<LogSubsystem::FIBRIL> {
 				return;
 			fr->checkContinuationState();
 		};
-		membar(fork_func(args..., this, ret, fun));
+		membar(spawn_func(args..., this, ret, fun));
 	}
 
 	template <class... PARs, class... ARGs>
-	inline __attribute__((always_inline)) void fork(void (*fun)(PARs...), ARGs... args) {
-		auto fork_func = [](ARGs... args, Fibril * fr, void (*fun)(PARs...))
+	inline __attribute__((always_inline)) void spawn(void (*fun)(PARs...), ARGs... args) {
+		auto spawn_func = [](ARGs... args, Fibril * fr, void (*fun)(PARs...))
 				__attribute__((noinline, hot, optimize(3))) {
 			fr->cont.ip = __builtin_return_address(0);
 			bool pushed = fr->runtime.scheduler.pushBottom(*fr);
@@ -320,12 +320,12 @@ class Fibril : public AbstractFiber, public Logger<LogSubsystem::FIBRIL> {
 				return;
 			fr->checkContinuationState();
 		};
-		membar(fork_func(args..., this, fun));
+		membar(spawn_func(args..., this, fun));
 	}
 
 	template <class T, class... ARGs>
-	inline __attribute__((always_inline)) void fork(std::function<T> fun, ARGs... args) {
-		auto fork_func = [](Fibril * fr, std::function<T> fun, ARGs... args)
+	inline __attribute__((always_inline)) void spawn(std::function<T> fun, ARGs... args) {
+		auto spawn_func = [](Fibril * fr, std::function<T> fun, ARGs... args)
 				__attribute__((noinline, hot, optimize(3))) {
 			fr->cont.ip = __builtin_return_address(0);
 			bool pushed = fr->runtime.scheduler.pushBottom(*fr);
@@ -334,28 +334,28 @@ class Fibril : public AbstractFiber, public Logger<LogSubsystem::FIBRIL> {
 				return;
 			fr->checkContinuationState();
 		};
-		membar(fork_func(this, fun, args...));
+		membar(spawn_func(this, fun, args...));
 	}
 
-	inline __attribute__((always_inline)) void join() {
+	inline __attribute__((always_inline)) void sync() {
 		if constexpr (LOCKED_CONTINUATION_STEALING) {
-			joinLocked();
+			syncLocked();
 		} else {
-			joinWaitFree();
+			syncWaitFree();
 		}
 	}
 
  private:
-	inline __attribute__((always_inline)) void joinLocked() {
+	inline __attribute__((always_inline)) void syncLocked() {
 		if (activeChildrenCount == 0) return;
 
-		membar(doJoin());
+		membar(doSync());
 	}
 
-	inline __attribute__((always_inline)) void joinWaitFree() {
+	inline __attribute__((always_inline)) void syncWaitFree() {
 		if (reverseStealCount == 0) return;
 
-		membar(doJoin());
+		membar(doSync());
 
 		reverseStealCount = 0;
 		if constexpr (UNMAP_STACKS) {
diff --git a/emper/io/io.cpp b/emper/io/io.cpp
index a58a29fb5a1429bb9da0afc7787e1458694c2e89..a0ea6b48c45b5b83e5eaefc75230dccc9fd3eab7 100644
--- a/emper/io/io.cpp
+++ b/emper/io/io.cpp
@@ -72,11 +72,11 @@ emper_fibril void fibril_recursive_directory_walk(
 		// become invalid at the end of the iteration.
 		const fs::directory_entry path = pathRef;
 		if (filter(path)) {
-			fibril.fork(fn, path);
+			fibril.spawn(fn, path);
 		}
 
 		if (pathRef.is_directory()) {
-			fibril.fork(fibril_recursive_directory_walk, path, filter, fn);
+			fibril.spawn(fibril_recursive_directory_walk, path, filter, fn);
 		}
 	}
 }
diff --git a/tests/continuation-stealing/ContinuationStealingAndPrivateSemaphoreTest.cpp b/tests/continuation-stealing/ContinuationStealingAndPrivateSemaphoreTest.cpp
index 982b64bb52e7b88804c831e681247aec9b677299..a9e136ce99cdbdc2c3bc684fd6d598b48a3118a3 100644
--- a/tests/continuation-stealing/ContinuationStealingAndPrivateSemaphoreTest.cpp
+++ b/tests/continuation-stealing/ContinuationStealingAndPrivateSemaphoreTest.cpp
@@ -9,35 +9,35 @@
 emper_fibril static void waitOnBps(BPS* bps) { bps->wait(); }
 
 // NOLINTNEXTLINE(clang-diagnostic-unknown-attributes)
-emper_fibril static void forkFirstThenSignal() {
+emper_fibril static void spawnFirstThenSignal() {
 	Fibril fibril;
 	BPS bps;
 
-	fibril.fork(waitOnBps, &bps);
+	fibril.spawn(waitOnBps, &bps);
 
 	bps.signal();
 
-	fibril.join();
+	fibril.sync();
 }
 
 // NOLINTNEXTLINE(clang-diagnostic-unknown-attributes)
-emper_fibril static void signalFirstThenFork() {
+emper_fibril static void signalFirstThenSpawn() {
 	Fibril fibril;
 	BPS bps;
 
 	bps.signal();
 
-	fibril.fork(waitOnBps, &bps);
+	fibril.spawn(waitOnBps, &bps);
 
-	fibril.join();
+	fibril.sync();
 }
 
 void emperTest() {
-	std::cout << "####    Fork first, then signal\n";
-	forkFirstThenSignal();
+	std::cout << "####    Spawn first, then signal\n";
+	spawnFirstThenSignal();
 
-	std::cout << "####    Signal first, then fork\n";
-	signalFirstThenFork();
+	std::cout << "####    Signal first, then spawn\n";
+	signalFirstThenSpawn();
 
 	std::cout << "####    Return from emperTest()\n";
 }
diff --git a/tests/continuation-stealing/CppContinuationApiTest.cpp b/tests/continuation-stealing/CppContinuationApiTest.cpp
index c4826dfc189c69cb930580f7bf4df708d2666486..a6ad47a474989796b939f5607a858ab5027c4289 100644
--- a/tests/continuation-stealing/CppContinuationApiTest.cpp
+++ b/tests/continuation-stealing/CppContinuationApiTest.cpp
@@ -15,10 +15,10 @@ emper_fibril void emperTest() {
 	Fibril fibril;
 
 	for (unsigned int i = 0; i < COUNT; ++i) {
-		fibril.fork(increaseCounterByOne);
+		fibril.spawn(increaseCounterByOne);
 	}
 
-	fibril.join();
+	fibril.sync();
 
 	if (counter != COUNT) {
 		exit(EXIT_FAILURE);
diff --git a/tests/continuation-stealing/FibFibrilTest.cpp b/tests/continuation-stealing/FibFibrilTest.cpp
index 665e3764b3c5cebcbefa7c32da8146a4d78a33c4..81ae91d9d4141c6aa473cdd312def0dfa22e94a3 100644
--- a/tests/continuation-stealing/FibFibrilTest.cpp
+++ b/tests/continuation-stealing/FibFibrilTest.cpp
@@ -27,11 +27,11 @@ emper_fibril static auto fib(uint64_t n) -> uint64_t {
 	Fibril fibril;
 	uint64_t a, b;
 
-	fibril.fork(&a, fib, n - 1);
+	fibril.spawn(&a, fib, n - 1);
 
 	b = fib(n - 2);
 
-	fibril.join();
+	fibril.sync();
 
 	return a + b;
 }