{"action":"created","issue":{"url":"https://api.github.com/repos/jaredthirsk/AOT-Compatlyzer/issues/1","labels_url":"https://api.github.com/repos/jaredthirsk/AOT-Compatlyzer/issues/1/labels{/name}","comments_url":"https://api.github.com/repos/jaredthirsk/AOT-Compatlyzer/issues/1/comments","events_url":"https://api.github.com/repos/jaredthirsk/AOT-Compatlyzer/issues/1/events","html_url":"https://github.com/jaredthirsk/AOT-Compatlyzer/issues/1","id":26963577,"number":1,"title":"Eliminate Interlocked CompareExchange","user":{"login":"ncruces","id":5637550,"avatar_url":"https://avatars.githubusercontent.com/u/5637550?v=3","gravatar_id":"","url":"https://api.github.com/users/ncruces","html_url":"https://github.com/ncruces","followers_url":"https://api.github.com/users/ncruces/followers","following_url":"https://api.github.com/users/ncruces/following{/other_user}","gists_url":"https://api.github.com/users/ncruces/gists{/gist_id}","starred_url":"https://api.github.com/users/ncruces/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ncruces/subscriptions","organizations_url":"https://api.github.com/users/ncruces/orgs","repos_url":"https://api.github.com/users/ncruces/repos","events_url":"https://api.github.com/users/ncruces/events{/privacy}","received_events_url":"https://api.github.com/users/ncruces/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/jaredthirsk/AOT-Compatlyzer/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2014-02-05T14:27:19Z","updated_at":"2015-03-23T22:37:18Z","closed_at":null,"body":"Hi,\r\n\r\nI've found what I think is a \"simpler\" and more \"general\" solution for the ExecutionEngineException on events compiled with Visual Studio.\r\n\r\nYou can simply replace any call to the generic version of CompareExchange:\r\n\tcall !!0 [mscorlib]System.Threading.Interlocked::CompareExchange<T>(!!0&, !!0, !!0)\r\n\r\nWith a call to the non-generic version:\r\n\tcall object [mscorlib]System.Threading.Interlocked::CompareExchange(object&, object, object)\r\n\r\nYou can safely do the same for calls to Interlocked::Exchange. You'll maintain thread-safety, and (surprisingly) it works on all platforms (at least for trusted code).\r\n\r\nGreatings."},"comment":{"url":"https://api.github.com/repos/jaredthirsk/AOT-Compatlyzer/issues/comments/85234433","html_url":"https://github.com/jaredthirsk/AOT-Compatlyzer/issues/1#issuecomment-85234433","issue_url":"https://api.github.com/repos/jaredthirsk/AOT-Compatlyzer/issues/1","id":85234433,"user":{"login":"jaredthirsk","id":297187,"avatar_url":"https://avatars.githubusercontent.com/u/297187?v=3","gravatar_id":"","url":"https://api.github.com/users/jaredthirsk","html_url":"https://github.com/jaredthirsk","followers_url":"https://api.github.com/users/jaredthirsk/followers","following_url":"https://api.github.com/users/jaredthirsk/following{/other_user}","gists_url":"https://api.github.com/users/jaredthirsk/gists{/gist_id}","starred_url":"https://api.github.com/users/jaredthirsk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jaredthirsk/subscriptions","organizations_url":"https://api.github.com/users/jaredthirsk/orgs","repos_url":"https://api.github.com/users/jaredthirsk/repos","events_url":"https://api.github.com/users/jaredthirsk/events{/privacy}","received_events_url":"https://api.github.com/users/jaredthirsk/received_events","type":"User","site_admin":false},"created_at":"2015-03-23T22:37:18Z","updated_at":"2015-03-23T22:37:18Z","body":"I don't have time right now.  There's a chance I may want/need this fix myself in 1-5 months :-/"}}