1:57:14ColleenBike: drmeister said 8 hours, 50 minutes ago: - I just realized my workers can update everything they need to using mp:atomic-incf.
1:57:57drmeisterNever mind that - I had to use a lock.
1:58:34Bike"Does (mp:atomic-incf (gethash x y 0)) make sense?" so part of the trick here is what "atomic" means. doing (with-lock (lock) (incf (gethash ...))) is atomic in the sense that if other code is using locks correctly, it will never see a partial state
1:58:43Bikebut then it's not "lock-free", meaning stuff like deadlock is possible
1:59:06Bikein C++, as i understand (and it's very possible i don't, because this is an especially messy part of the standard), std::atomic doesn't actually have to be lock-free
1:59:24Bikeand in actual implementations they fall back to locks when the machine can't actually do things atomically
2:03:09Bike"atomic", not lock free incf of gethash could be done by providing an additional internal operation for synchronized (locked) hash tables to do read-modify-write, if we wanted, i think
3:08:05beachGood morning everyone! And happy solstice!