Concurrency, interactivity, mutability, choose two
You have a Common Lisp program running, multiple threads listening for network connections, others processing data in the background. You were really careful making sure that there are no data access conflicts. Concurrency, check. You use Emacs and SLIME to connect to your server, inspect its state. Interactivity, check. You realize a global hash table contains an incorrect value; no problem, just evaluate a simple REMHASH expression. Mutability, check. Unfortunately another thread happens to read the hash table while the form is being evaluated. Game over.
Summary
Managing concurrency and interactivity in a Common Lisp program can be tricky, especially when multiple threads are involved. The piece illustrates a real-world scenario where ensuring data integrity becomes a challenge, highlighting the delicate balance between mutability and thread safety.
Comments (27 of ) ⌛