)]}'
{"src/common/pthread-lock.hpp":[{"author":{"_account_id":1000008,"name":"Jonathan Rajotte Julien","email":"jonathan.rajotte-julien@efficios.com","username":"PSRCode","avatars":[{"url":"https://www.gravatar.com/avatar/f4101e071636faa234915893668fa03c.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/f4101e071636faa234915893668fa03c.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/f4101e071636faa234915893668fa03c.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/f4101e071636faa234915893668fa03c.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d120","height":120}],"inactive":true},"change_message_id":"5e35940e7d05daed165093b8fa80ef5dbd47708a","unresolved":true,"context_lines":[{"line_number":17,"context_line":"namespace pthread {"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"namespace details {"},{"line_number":20,"context_line":"class mutex {"},{"line_number":21,"context_line":"public:"},{"line_number":22,"context_line":"\tmutex(pthread_mutex_t\u0026 mutex_p) : _mutex{mutex_p}"},{"line_number":23,"context_line":"\t{"}],"source_content_type":"text/x-c++src","patch_set":13,"id":"ab29517e_35efd5c4","line":20,"updated":"2022-06-09 15:44:06.000000000","message":"AFAIU this mutex class does not satisfy the \"DefaultConstructible\" named requirement for Mutex.\n\nhttps://godbolt.org/z/jfGhM1x3P","commit_id":"5a05f909d2add52df8652762a3353ddad986d0d0"},{"author":{"_account_id":1000006,"name":"Jérémie Galarneau","email":"jeremie.galarneau@efficios.com","username":"jgalar","avatars":[{"url":"https://www.gravatar.com/avatar/8689763327e5bbda7dec9f18846b60ae.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/8689763327e5bbda7dec9f18846b60ae.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/8689763327e5bbda7dec9f18846b60ae.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/8689763327e5bbda7dec9f18846b60ae.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d120","height":120}]},"change_message_id":"0ade6d27f9d0cfae258feb1e2363ac81282c6d33","unresolved":false,"context_lines":[{"line_number":17,"context_line":"namespace pthread {"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"namespace details {"},{"line_number":20,"context_line":"class mutex {"},{"line_number":21,"context_line":"public:"},{"line_number":22,"context_line":"\tmutex(pthread_mutex_t\u0026 mutex_p) : _mutex{mutex_p}"},{"line_number":23,"context_line":"\t{"}],"source_content_type":"text/x-c++src","patch_set":13,"id":"c15e0201_108cfea2","line":20,"in_reply_to":"ab29517e_35efd5c4","updated":"2022-06-09 18:20:11.000000000","message":"Indeed. I did without this part to prevent misuses. This class should be used to wrap existing pthread_mutexes. However, we should transition to using std::mutex in the future (at least, when possible).\n\nI\u0027ll document this.","commit_id":"5a05f909d2add52df8652762a3353ddad986d0d0"},{"author":{"_account_id":1000008,"name":"Jonathan Rajotte Julien","email":"jonathan.rajotte-julien@efficios.com","username":"PSRCode","avatars":[{"url":"https://www.gravatar.com/avatar/f4101e071636faa234915893668fa03c.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/f4101e071636faa234915893668fa03c.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/f4101e071636faa234915893668fa03c.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/f4101e071636faa234915893668fa03c.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d120","height":120}],"inactive":true},"change_message_id":"b2d071769c8644a5f4d285251bd108ebefb1fe18","unresolved":false,"context_lines":[{"line_number":17,"context_line":"namespace pthread {"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"namespace details {"},{"line_number":20,"context_line":"class mutex {"},{"line_number":21,"context_line":"public:"},{"line_number":22,"context_line":"\tmutex(pthread_mutex_t\u0026 mutex_p) : _mutex{mutex_p}"},{"line_number":23,"context_line":"\t{"}],"source_content_type":"text/x-c++src","patch_set":13,"id":"87b3e924_f9f48a01","line":20,"in_reply_to":"c15e0201_108cfea2","updated":"2022-06-09 20:26:49.000000000","message":"As long as it is documented that it does not comply but at least \"try\" to to an extent I\u0027m okay with it. Just wanted to ensure that you were aware of it.","commit_id":"5a05f909d2add52df8652762a3353ddad986d0d0"},{"author":{"_account_id":1000008,"name":"Jonathan Rajotte Julien","email":"jonathan.rajotte-julien@efficios.com","username":"PSRCode","avatars":[{"url":"https://www.gravatar.com/avatar/f4101e071636faa234915893668fa03c.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/f4101e071636faa234915893668fa03c.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/f4101e071636faa234915893668fa03c.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/f4101e071636faa234915893668fa03c.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d120","height":120}],"inactive":true},"change_message_id":"5e35940e7d05daed165093b8fa80ef5dbd47708a","unresolved":true,"context_lines":[{"line_number":23,"context_line":"\t{"},{"line_number":24,"context_line":"\t}"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"\tmutex(mutex const \u0026) \u003d delete;"},{"line_number":27,"context_line":"\tmutex \u0026operator\u003d(mutex const \u0026) \u003d delete;"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"\tvoid lock()"}],"source_content_type":"text/x-c++src","patch_set":13,"id":"0b71b283_6e05d00a","line":26,"updated":"2022-06-09 15:44:06.000000000","message":"Add comment indicating that this is to satisfy the non-copyable/non-movable requirement of the Mutex named requirement. Albeit some info exist in the commit message, having a bit of info as to what are the expectations for this class in the form of code comment will most probably be pertinent in the future.\n\nComments in the urcu lock version should be somewhat replicated here.","commit_id":"5a05f909d2add52df8652762a3353ddad986d0d0"},{"author":{"_account_id":1000006,"name":"Jérémie Galarneau","email":"jeremie.galarneau@efficios.com","username":"jgalar","avatars":[{"url":"https://www.gravatar.com/avatar/8689763327e5bbda7dec9f18846b60ae.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/8689763327e5bbda7dec9f18846b60ae.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/8689763327e5bbda7dec9f18846b60ae.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/8689763327e5bbda7dec9f18846b60ae.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d120","height":120}]},"change_message_id":"0ade6d27f9d0cfae258feb1e2363ac81282c6d33","unresolved":false,"context_lines":[{"line_number":23,"context_line":"\t{"},{"line_number":24,"context_line":"\t}"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"\tmutex(mutex const \u0026) \u003d delete;"},{"line_number":27,"context_line":"\tmutex \u0026operator\u003d(mutex const \u0026) \u003d delete;"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"\tvoid lock()"}],"source_content_type":"text/x-c++src","patch_set":13,"id":"9bcbd728_290d0229","line":26,"in_reply_to":"0b71b283_6e05d00a","updated":"2022-06-09 18:20:11.000000000","message":"Done","commit_id":"5a05f909d2add52df8652762a3353ddad986d0d0"},{"author":{"_account_id":1000008,"name":"Jonathan Rajotte Julien","email":"jonathan.rajotte-julien@efficios.com","username":"PSRCode","avatars":[{"url":"https://www.gravatar.com/avatar/f4101e071636faa234915893668fa03c.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/f4101e071636faa234915893668fa03c.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/f4101e071636faa234915893668fa03c.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/f4101e071636faa234915893668fa03c.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d120","height":120}],"inactive":true},"change_message_id":"5e35940e7d05daed165093b8fa80ef5dbd47708a","unresolved":true,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"\t\tif (ret \u003d\u003d 0) {"},{"line_number":41,"context_line":"\t\t\treturn true;"},{"line_number":42,"context_line":"\t\t} else if (errno \u003d\u003d EBUSY) {"},{"line_number":43,"context_line":"\t\t\treturn false;"},{"line_number":44,"context_line":"\t\t} else {"},{"line_number":45,"context_line":"\t\t\tLTTNG_THROW_POSIX(\"Failed to try to lock mutex\", errno);"}],"source_content_type":"text/x-c++src","patch_set":13,"id":"2ef0e4d2_a7498a47","line":42,"updated":"2022-06-09 15:44:06.000000000","message":"Considering that the pthread mutex is not created by this class itself but given to it, the pthread mutex could be in recursive mode and return EAGAIN if the maximum number of \"get\" is reached.\n\nThe glibc code clearly show that pthread_mutex_trylock can return EAGAIN (https://sourceware.org/git/?p\u003dglibc.git;a\u003dblob;f\u003dnptl/pthread_mutex_trylock.c;h\u003d8a7de8e598803f606899fe1c9b8775bc24dd14ec;hb\u003dHEAD#l45)\nand this man page also https://linux.die.net/man/3/pthread_mutex_trylock\n\nBut not the man page installed on my system:\n\n        The pthread_mutex_trylock function returns the following error \n        codes on error:\n\n              EBUSY  the mutex could not be acquired because it \n              was currently locked.\n\n              EINVAL the mutex has not been properly initialized.\n              \n           \nStill this would only happen on overflow of a unsigned int ... This is a weird corner case.\n\nYour call.","commit_id":"5a05f909d2add52df8652762a3353ddad986d0d0"},{"author":{"_account_id":1000006,"name":"Jérémie Galarneau","email":"jeremie.galarneau@efficios.com","username":"jgalar","avatars":[{"url":"https://www.gravatar.com/avatar/8689763327e5bbda7dec9f18846b60ae.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/8689763327e5bbda7dec9f18846b60ae.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/8689763327e5bbda7dec9f18846b60ae.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/8689763327e5bbda7dec9f18846b60ae.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d120","height":120}]},"change_message_id":"0ade6d27f9d0cfae258feb1e2363ac81282c6d33","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"\t\tif (ret \u003d\u003d 0) {"},{"line_number":41,"context_line":"\t\t\treturn true;"},{"line_number":42,"context_line":"\t\t} else if (errno \u003d\u003d EBUSY) {"},{"line_number":43,"context_line":"\t\t\treturn false;"},{"line_number":44,"context_line":"\t\t} else {"},{"line_number":45,"context_line":"\t\t\tLTTNG_THROW_POSIX(\"Failed to try to lock mutex\", errno);"}],"source_content_type":"text/x-c++src","patch_set":13,"id":"1074d740_9ba86d67","line":42,"in_reply_to":"2ef0e4d2_a7498a47","updated":"2022-06-09 18:20:11.000000000","message":"Fixes, thanks!","commit_id":"5a05f909d2add52df8652762a3353ddad986d0d0"}]}
