SRFI-18 states: "Read and write operations on the store (such as reading and writing a variable, an element of a vector or a string) are not required to be atomic. It is an error for a thread to write a location in the store while some other thread reads or writes that same location."
Is it possible to eval a variable that is in an inconsistent state? I understand that if there are a series of set-car! on a list, then a reader may see the list as it is in between any of the set-car! calls. But is it possible that an update to a very large object will ever be interrupted by one thread such that other threads will see a broken version? (use srfi-1) (define foo '(1 2 3)) (thread-start! (make-thread (lambda () (set! foo (iota 1e8))))) (print foo) In the above code, will the primordial thread ever print a list that isn't exactly (1 2 3) or (iota 1e8)? The context of my question is that for a small web app I have a hash table that all threads read freely, but they coordinate writes with a mutex. Do I need to also have a read lock? Bryan Vicknair _______________________________________________ Chicken-users mailing list Chicken-users@nongnu.org https://lists.nongnu.org/mailman/listinfo/chicken-users