Table of Contents for Programming Languages: a survey
See LLVM
See PyPy
See JVM
See CLR
See also targets, IRs, VMs and runtimes
"OS threads, blocking IO, and other system things"
asynchronous I/O and some other stuff.
Used by nodejs, Rust language, Luvit, Julia, pyuv, MoarVM?.
Used by nodejs
helps with debugging memory leaks (see http://www.joyent.com/blog/walmart-node-js-memory-leak for an example)
"Provides implementations for atomic memory update operations on a number of architectures"
"Note that experience with this package contributed to the design of C11 and C++11 atomics, which represent a careful refinement of the API. If your platform supports well-implemented C11 or C++11 atomics, please use those instead. "
documentation: http://en.cppreference.com/w/c/atomic
C11 atomics:
All of the above atomics take an optional parameter, memory_order, which can be one of relaxed memory_order_relaxed, memory_order_consume, memory_order_acquire, memory_order_release, memory_order_acq_rel, memory_order_seq_cst. The default is memory_order_seq_cst (the strongest sequencing condition). Here's what these do: http://en.cppreference.com/w/c/atomic/memory_order
"Members of an atomic struct/union may not be accessed individually. The whole struct must first be copied to a non-atomic variable of compatible type."
"The ++,--, and compound assignment operators (e.g. +=) are atomic read-modify-write operations."
-- http://fileadmin.cs.lth.se/cs/Education/EDAN25/F06.pdf