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.
50 points by billiob 86 days ago www.n16f.net 27 comments

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 ) ⌛

Loading more comments... ⌛
Scroll down to load more comments
No comments available.
Type to search HN and engineering blog articles
Press Escape to close  |  ↑↓ to navigate  |  Enter to open