mirror of
https://github.com/tinygo-org/tinygo.git
synced 2026-08-06 03:53:42 +00:00
60f8a62978
This commit adds support for a scheduler that runs a scheduler on all available cores. It is meant to be used on baremetal systems with a fixed number of cores, such as the RP2040. The initial implementation adds support for multicore scheduling to the riscv-qemu target as a convenient testing target. This means that this new multicore scheduler is tested in CI, including a bunch of standard library tests (`make tinygo-test-baremetal`). This should ensure the new scheduler is reasonably well tested before trying to use it on harder-to-debug targets like the RP2040.
12 lines
369 B
Go
12 lines
369 B
Go
//go:build !tinygo.unicore
|
|
|
|
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 = Mutex
|