{"action":"created","issue":{"url":"https://api.github.com/repos/libgit2/libgit2/issues/3150","labels_url":"https://api.github.com/repos/libgit2/libgit2/issues/3150/labels{/name}","comments_url":"https://api.github.com/repos/libgit2/libgit2/issues/3150/comments","events_url":"https://api.github.com/repos/libgit2/libgit2/issues/3150/events","html_url":"https://github.com/libgit2/libgit2/pull/3150","id":79552343,"number":3150,"title":"Lock around encrypted I/O","user":{"login":"carlosmn","id":335443,"avatar_url":"https://avatars.githubusercontent.com/u/335443?v=3","gravatar_id":"","url":"https://api.github.com/users/carlosmn","html_url":"https://github.com/carlosmn","followers_url":"https://api.github.com/users/carlosmn/followers","following_url":"https://api.github.com/users/carlosmn/following{/other_user}","gists_url":"https://api.github.com/users/carlosmn/gists{/gist_id}","starred_url":"https://api.github.com/users/carlosmn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/carlosmn/subscriptions","organizations_url":"https://api.github.com/users/carlosmn/orgs","repos_url":"https://api.github.com/users/carlosmn/repos","events_url":"https://api.github.com/users/carlosmn/events{/privacy}","received_events_url":"https://api.github.com/users/carlosmn/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-05-22T18:06:43Z","updated_at":"2015-06-20T10:18:00Z","closed_at":"2015-06-20T10:18:00Z","pull_request":{"url":"https://api.github.com/repos/libgit2/libgit2/pulls/3150","html_url":"https://github.com/libgit2/libgit2/pull/3150","diff_url":"https://github.com/libgit2/libgit2/pull/3150.diff","patch_url":"https://github.com/libgit2/libgit2/pull/3150.patch"},"body":"OpenSSL and often whatever libssh2 is using require their own set-up for\r\nconcurrent operations to be safe. This means that by default, using both\r\nof these libraries in a threaded context is unsafe.\r\n\r\nLock by default, and allow the user to tell us that they've set up\r\nthreading for the underlying libraries.\r\n\r\n---\r\n\r\nI'm quite conflicted about this approach. It does make use safer by default. E.g. even if you run `git_openssl_set_locking()` on Debian, you're still not safe to perform multiple ssh operations in parallel, but it feels like a huge hack around something we shouldn't be handling at all in the library.\r\n\r\nMore rationale is at #2702 "},"comment":{"url":"https://api.github.com/repos/libgit2/libgit2/issues/comments/113741174","html_url":"https://github.com/libgit2/libgit2/pull/3150#issuecomment-113741174","issue_url":"https://api.github.com/repos/libgit2/libgit2/issues/3150","id":113741174,"user":{"login":"carlosmn","id":335443,"avatar_url":"https://avatars.githubusercontent.com/u/335443?v=3","gravatar_id":"","url":"https://api.github.com/users/carlosmn","html_url":"https://github.com/carlosmn","followers_url":"https://api.github.com/users/carlosmn/followers","following_url":"https://api.github.com/users/carlosmn/following{/other_user}","gists_url":"https://api.github.com/users/carlosmn/gists{/gist_id}","starred_url":"https://api.github.com/users/carlosmn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/carlosmn/subscriptions","organizations_url":"https://api.github.com/users/carlosmn/orgs","repos_url":"https://api.github.com/users/carlosmn/repos","events_url":"https://api.github.com/users/carlosmn/events{/privacy}","received_events_url":"https://api.github.com/users/carlosmn/received_events","type":"User","site_admin":false},"created_at":"2015-06-20T10:18:00Z","updated_at":"2015-06-20T10:18:00Z","body":"I'm going to close this plus the issue, this is really not something we should be handling in the library."}}