So, since I've been developing my application in JRuby, could I not just leverage the JDK's ConcurrentHashMap?
Would I have to do more than simply assign an instance of a CHM to a constant in my application, and then monkey-patch the Sequel::Plugins::IdentityMap::ClassMethods#identity_map accessor methods to refer to my application constant instead of the Thread.current[:sequel_identity_map]? Clearly I wouldn't be able to re-assign the constant without a bit of warning silencing, so I'm unsure how I might go about taking care of a per-model identity map, unless I were to have nested CHMs keyed by model. May I ask for your thoughts on this, Jeremy? Thanks for any attention you can give my questions, Jeremy. -Nels On Mar 2, 10:19 am, Jeremy Evans <[email protected]> wrote: > On Thursday, March 1, 2012 8:22:08 PM UTC-8, Nels Nelson wrote: > > > I guess I simply cannot do what I am attempting to do. > > > I re-forked the fork that you made, and made some adjustments to > > reflect what I am actually attempting to do. > > >https://gist.github.com/1955486 > > > The non-persistent items (the string "Hi!" in this case) are simply > > not there in the second thread. > > > Still, thank you for your help, Jeremy. I guess I will have to figure > > out how to create a thread safe hash that I store as a class variable > > somewhere, and key by entity instance or something. That just seems > > awful. > > You could try just make the change to the identity_map plugin to use a > thread-safe global hash instead of a regular hash stored in a thread-local > variable (changing identity_map and identity_map=). But you are going to > have to use some sort of locking mechanism at the model instance level to > make sure that no thread is modifying an instance while another thread is > operating on it. I'd recommend writing a mutex plugin so you can do > model_instance.sync{...} for that. > > Jeremy -- You received this message because you are subscribed to the Google Groups "sequel-talk" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/sequel-talk?hl=en.
