{"push_id":1147573884,"size":1,"distinct_size":1,"ref":"refs/heads/iaguis/libsystemd-map-dont-close","head":"0ad9571661504b1b07793c7d50cdaca5ae76043b","before":"35514ffd531cec02d00647b113035de24f504551","commits":[{"sha":"0ad9571661504b1b07793c7d50cdaca5ae76043b","author":{"name":"Iago López Galeiras","email":"cf72ad97863626af7676324730cc83a378a949bb@kinvolk.io"},"message":"sdjournal: don't close libsystemd on Close()\n\nThere is a symbol cache (map from function names to their addresses) so\nwe don't need to call dlsym everytime we call a function from libsystemd\nif it was already called before.\n\nEvery time we open a new Journal, we call dlopen(), and every time we\nclose it, we call dlclose(). Since the map was global and we weren't\nclearing it up after closing Journal, we were reusing the addresses from\nthe previous invocation. This is wrong because libsystemd can end up in\na different address the second time we dlopen() it.\n\nInstead, just don't call dlclose() when we close the Journal so\nlibsystemd remains in the process address space for the whole life of\nit. This means the symbol cache will be shared between different Journal\ninstances.","distinct":true,"url":"https://api.github.com/repos/kinvolk/go-systemd/commits/0ad9571661504b1b07793c7d50cdaca5ae76043b"}]}
{"actor":{"display_login":"iaguis"}}