{"action":"created","issue":{"url":"https://api.github.com/repos/serilog/serilog/issues/623","repository_url":"https://api.github.com/repos/serilog/serilog","labels_url":"https://api.github.com/repos/serilog/serilog/issues/623/labels{/name}","comments_url":"https://api.github.com/repos/serilog/serilog/issues/623/comments","events_url":"https://api.github.com/repos/serilog/serilog/issues/623/events","html_url":"https://github.com/serilog/serilog/pull/623","id":125375123,"number":623,"title":"Replace state transitions under lock with Interlocked operations","user":{"login":"DmitryNaumov","id":866389,"avatar_url":"https://avatars.githubusercontent.com/u/866389?v=3","gravatar_id":"","url":"https://api.github.com/users/DmitryNaumov","html_url":"https://github.com/DmitryNaumov","followers_url":"https://api.github.com/users/DmitryNaumov/followers","following_url":"https://api.github.com/users/DmitryNaumov/following{/other_user}","gists_url":"https://api.github.com/users/DmitryNaumov/gists{/gist_id}","starred_url":"https://api.github.com/users/DmitryNaumov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DmitryNaumov/subscriptions","organizations_url":"https://api.github.com/users/DmitryNaumov/orgs","repos_url":"https://api.github.com/users/DmitryNaumov/repos","events_url":"https://api.github.com/users/DmitryNaumov/events{/privacy}","received_events_url":"https://api.github.com/users/DmitryNaumov/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":7,"created_at":"2016-01-07T11:21:02Z","updated_at":"2016-03-01T21:46:02Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/serilog/serilog/pulls/623","html_url":"https://github.com/serilog/serilog/pull/623","diff_url":"https://github.com/serilog/serilog/pull/623.diff","patch_url":"https://github.com/serilog/serilog/pull/623.patch"},"body":"This PR is about reducing contention on PeriodicBatchingSink.Emit call by replacing Monitor with Interlocked calls. (#619)\r\n\r\nOne tricky thing I left as in original code is in CloseAndFlush method where sink won't be unsubscribed from AppDomain events and timer won't be disposed if sink wasn't actually started (no calls to Emit made). Former clearly not an issue and the latter one also shouldn't cause problems for BCL Timer and portable one."},"comment":{"url":"https://api.github.com/repos/serilog/serilog/issues/comments/190920350","html_url":"https://github.com/serilog/serilog/pull/623#issuecomment-190920350","issue_url":"https://api.github.com/repos/serilog/serilog/issues/623","id":190920350,"user":{"login":"nblumhardt","id":342712,"avatar_url":"https://avatars.githubusercontent.com/u/342712?v=3","gravatar_id":"","url":"https://api.github.com/users/nblumhardt","html_url":"https://github.com/nblumhardt","followers_url":"https://api.github.com/users/nblumhardt/followers","following_url":"https://api.github.com/users/nblumhardt/following{/other_user}","gists_url":"https://api.github.com/users/nblumhardt/gists{/gist_id}","starred_url":"https://api.github.com/users/nblumhardt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nblumhardt/subscriptions","organizations_url":"https://api.github.com/users/nblumhardt/orgs","repos_url":"https://api.github.com/users/nblumhardt/repos","events_url":"https://api.github.com/users/nblumhardt/events{/privacy}","received_events_url":"https://api.github.com/users/nblumhardt/received_events","type":"User","site_admin":false},"created_at":"2016-03-01T21:46:02Z","updated_at":"2016-03-01T21:46:02Z","body":"Awesome, can't wait either! :shipit: "}}