payload: {"action":"created","issue":{"url":"https://api.github.com/repos/udger/udger-java/issues/20","repository_url":"https://api.github.com/repos/udger/udger-java","labels_url":"https://api.github.com/repos/udger/udger-java/issues/20/labels{/name}","comments_url":"https://api.github.com/repos/udger/udger-java/issues/20/comments","events_url":"https://api.github.com/repos/udger/udger-java/issues/20/events","html_url":"https://github.com/udger/udger-java/pull/20","id":402175911,"node_id":"MDExOlB1bGxSZXF1ZXN0MjQ2OTE4MjE0","number":20,"title":"Thread safe","user":{"login":"DimaGolomozy","id":9161830,"node_id":"MDQ6VXNlcjkxNjE4MzA=","avatar_url":"https://avatars1.githubusercontent.com/u/9161830?v=4","gravatar_id":"","url":"https://api.github.com/users/DimaGolomozy","html_url":"https://github.com/DimaGolomozy","followers_url":"https://api.github.com/users/DimaGolomozy/followers","following_url":"https://api.github.com/users/DimaGolomozy/following{/other_user}","gists_url":"https://api.github.com/users/DimaGolomozy/gists{/gist_id}","starred_url":"https://api.github.com/users/DimaGolomozy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DimaGolomozy/subscriptions","organizations_url":"https://api.github.com/users/DimaGolomozy/orgs","repos_url":"https://api.github.com/users/DimaGolomozy/repos","events_url":"https://api.github.com/users/DimaGolomozy/events{/privacy}","received_events_url":"https://api.github.com/users/DimaGolomozy/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2019-01-23T10:41:37Z","updated_at":"2019-05-23T07:56:30Z","closed_at":"2019-05-23T07:44:27Z","author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/udger/udger-java/pulls/20","html_url":"https://github.com/udger/udger-java/pull/20","diff_url":"https://github.com/udger/udger-java/pull/20.diff","patch_url":"https://github.com/udger/udger-java/pull/20.patch"},"body":"removed the local `lastPatternMatcher` that cause it to be not thread-safe.\r\n\r\nNow the parser is not thread safe. so in order to use threads one has to use a `lock` before each call the `parseUA/IP`, and that's bad for performance. \r\nanother option is using an `object pool` of multiple parsers (even with a single parser-db) but thats memory expensive.\r\n\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/udger/udger-java/issues/comments/495109581","html_url":"https://github.com/udger/udger-java/pull/20#issuecomment-495109581","issue_url":"https://api.github.com/repos/udger/udger-java/issues/20","id":495109581,"node_id":"MDEyOklzc3VlQ29tbWVudDQ5NTEwOTU4MQ==","user":{"login":"skybber","id":2523097,"node_id":"MDQ6VXNlcjI1MjMwOTc=","avatar_url":"https://avatars3.githubusercontent.com/u/2523097?v=4","gravatar_id":"","url":"https://api.github.com/users/skybber","html_url":"https://github.com/skybber","followers_url":"https://api.github.com/users/skybber/followers","following_url":"https://api.github.com/users/skybber/following{/other_user}","gists_url":"https://api.github.com/users/skybber/gists{/gist_id}","starred_url":"https://api.github.com/users/skybber/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/skybber/subscriptions","organizations_url":"https://api.github.com/users/skybber/orgs","repos_url":"https://api.github.com/users/skybber/repos","events_url":"https://api.github.com/users/skybber/events{/privacy}","received_events_url":"https://api.github.com/users/skybber/received_events","type":"User","site_admin":false},"created_at":"2019-05-23T07:56:30Z","updated_at":"2019-05-23T07:56:30Z","author_association":"CONTRIBUTOR","body":"Thanks, I see it now. But to make UderParser thread safe, then the caches must be thread safe as well."}}
other: {"actor":{"display_login":"skybber"}}