Onyx's basic threading mechanisms are typical of those found in modern threading implementations. One of the aspects of Onyx's threading implementation to be aware of is that since the operating system's threading implementation is used, there are many types of programming errors that can cause undefined behavior. With some effort, it is possible to crash the Onyx interpreter without the use of threads. However, it requires skill and discipline to not crash the Onyx interpreter when using threads. This was a conscious design decision for Onyx; doing otherwise would have limited the scalability of threading.