Files
Odin/examples/demo
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-11-23 19:48:03 +01:00
2024-08-21 16:26:10 +02:00