Files
Odin/examples
Laytan Laats 95a37dd340 remove terminate from demo
This was causing deadlocks because:

1. The main thread would `thread.terminate` a running thread
2. `thread.terminate` does not mean termination happens immediately
3. The thread that was terminated would see that the main thread
   released `print_mutex` and acquire it
4. The worker would execute `fmt.printf` which is a cancellation point
5. Cancellation point reached, cancelled
6. Deadlock because the thread was holding `print_mutex`

You would usually solve this with `pthread_cleanup_push` that would
release the mutex in case it is cancelled, or use
`pthread_setcancelstate` to disable cancellation while the mutex is
held. But the real fix is just not using forced termination and using a
flag or other mechanism to indicate to the thread it should stop.

`thread.terminate` shouldn't even be a thing IMO.
It is way to dangerous and if somebody knows what they are doing they
can use the core:sys procedures to achieve it.

And we certainly shouldn't be using it in the demo as an example.
2025-11-23 19:48:03 +01:00
..
2025-10-31 14:24:19 +00:00
2025-11-23 19:48:03 +01:00

Examples

The example directory contains two packages:

A demo illustrating the basics of Odin.

It further contains all, which imports all core and vendor packages so we can conveniently run odin check on everything at once.

For additional example code, see the examples repository.