From f75187392d511ae37c857e2c10a3d59136fbab69 Mon Sep 17 00:00:00 2001 From: Ayke van Laethem Date: Mon, 28 Oct 2024 15:58:46 +0100 Subject: internal/task: implement PMutex PMutex is a mutex when threading is possible, and a dummy mutex-like object (that doesn't do anything) otherwise. --- src/internal/task/pmutex-cooperative.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 src/internal/task/pmutex-cooperative.go diff --git a/src/internal/task/pmutex-cooperative.go b/src/internal/task/pmutex-cooperative.go new file mode 100644 index 000000000..ae2aa4bad --- /dev/null +++ b/src/internal/task/pmutex-cooperative.go @@ -0,0 +1,16 @@ +package task + +// PMutex is a real mutex on systems that can be either preemptive or threaded, +// and a dummy lock on other (purely cooperative) systems. +// +// It is mainly useful for short operations that need a lock when threading may +// be involved, but which do not need a lock with a purely cooperative +// scheduler. +type PMutex struct { +} + +func (m *PMutex) Lock() { +} + +func (m *PMutex) Unlock() { +} -- cgit v1.2.3