http://qs321.pair.com?node_id=410014


in reply to Using clone/dclone with threads

I'll explain why I was trying to make local copies.

Basically, I've got an HoHoH which contains lots of records, unique key at top-level, so each record appears once & only once in the struct.
There are multiple threads processing these records, but at any given time a given record will only be being processed by exactly 1 thread, except when I need to pass a record to another thread, which is rare.

Having read the Perl docs etc, it seems that
1. you can only lock the entire HoHoH, not sub-levels
2. you have to lock the entire HoHoH to make an update

For me, the records will be being updated frequently, but as I say, there will be no clash of trying to update the same record from 2 different threads. If I have to lock the HoHoH for each update, it'll bottleneck badly.
OTOH, if non-clashing updates are safe without locking, that would be great.