Seems that Boost\'s shared_mutex is non recursive.. Is there anyway around this? (without re implementing the whole stuff)
You'll have to use shared_ptr in those cases. Put your mutex in a shared_ptr and it'll do ref-counting on your mutex, which will gave you simmilar results.