On 10/06/2016, Gregory Farnum wrote: > So you want everything to stay with/go back to having a global member > for the ProcessContext? Precisely. I want a ProcessContext to handle dout and the like in libcommon (since it doesn't vary by cluster I don't think there's any reason to restrict it to libglobal/daemon/whatever) and let everything else be passed in. > I'm surprised it needs to find its way into so many random things; > most objects have references to their parent that let them go back to > the MDSRank/OSD/whatever main class there is. A lot of them do have a link back to the main class but a lot don't. A lot of 'light weight' data classes in the MDS for example don't have a link back to anything but still need g_ceph_context to tell time or dout something. A lot of callbacks do that, too. other places they link back but the cct is protected (which I just switched to public in my version, but it isn't ideal.) After having tried to do it I think having a fairly minimal (process specific) part that's global in libcommon and the rest that Isn't Global Anywhere is much less disruptive. -- Senior Software Engineer Red Hat Storage, Ann Arbor, MI, US IRC: Aemerson@{RedHat, OFTC, Freenode} 0x80F7544B90EDBFB9 E707 86BA 0C1B 62CC 152C 7C12 80F7 544B 90ED BFB9 -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html