{"action":"created","issue":{"url":"https://api.github.com/repos/ryanpopo/LabVIEW-Memory-Manager/issues/10","repository_url":"https://api.github.com/repos/ryanpopo/LabVIEW-Memory-Manager","labels_url":"https://api.github.com/repos/ryanpopo/LabVIEW-Memory-Manager/issues/10/labels{/name}","comments_url":"https://api.github.com/repos/ryanpopo/LabVIEW-Memory-Manager/issues/10/comments","events_url":"https://api.github.com/repos/ryanpopo/LabVIEW-Memory-Manager/issues/10/events","html_url":"https://github.com/ryanpopo/LabVIEW-Memory-Manager/issues/10","id":387849097,"node_id":"MDU6SXNzdWUzODc4NDkwOTc=","number":10,"title":"Memory manager is not thread safe","user":{"login":"csjall","id":4081815,"node_id":"MDQ6VXNlcjQwODE4MTU=","avatar_url":"https://avatars1.githubusercontent.com/u/4081815?v=4","gravatar_id":"","url":"https://api.github.com/users/csjall","html_url":"https://github.com/csjall","followers_url":"https://api.github.com/users/csjall/followers","following_url":"https://api.github.com/users/csjall/following{/other_user}","gists_url":"https://api.github.com/users/csjall/gists{/gist_id}","starred_url":"https://api.github.com/users/csjall/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/csjall/subscriptions","organizations_url":"https://api.github.com/users/csjall/orgs","repos_url":"https://api.github.com/users/csjall/repos","events_url":"https://api.github.com/users/csjall/events{/privacy}","received_events_url":"https://api.github.com/users/csjall/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-12-05T16:51:00Z","updated_at":"2018-12-10T19:32:03Z","closed_at":null,"author_association":"NONE","body":"Currently there is no synchronization that prevents me from reading/writing/disposing a buffer at the same time from multiple threads. This could lead to race conditions where we crash or get corrupt data based on timing of the system. We should add some synchronization primitives to have atomic read/write/dispose methods."},"comment":{"url":"https://api.github.com/repos/ryanpopo/LabVIEW-Memory-Manager/issues/comments/445942480","html_url":"https://github.com/ryanpopo/LabVIEW-Memory-Manager/issues/10#issuecomment-445942480","issue_url":"https://api.github.com/repos/ryanpopo/LabVIEW-Memory-Manager/issues/10","id":445942480,"node_id":"MDEyOklzc3VlQ29tbWVudDQ0NTk0MjQ4MA==","user":{"login":"ryanpopo","id":10538685,"node_id":"MDQ6VXNlcjEwNTM4Njg1","avatar_url":"https://avatars0.githubusercontent.com/u/10538685?v=4","gravatar_id":"","url":"https://api.github.com/users/ryanpopo","html_url":"https://github.com/ryanpopo","followers_url":"https://api.github.com/users/ryanpopo/followers","following_url":"https://api.github.com/users/ryanpopo/following{/other_user}","gists_url":"https://api.github.com/users/ryanpopo/gists{/gist_id}","starred_url":"https://api.github.com/users/ryanpopo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ryanpopo/subscriptions","organizations_url":"https://api.github.com/users/ryanpopo/orgs","repos_url":"https://api.github.com/users/ryanpopo/repos","events_url":"https://api.github.com/users/ryanpopo/events{/privacy}","received_events_url":"https://api.github.com/users/ryanpopo/received_events","type":"User","site_admin":false},"created_at":"2018-12-10T19:32:03Z","updated_at":"2018-12-10T19:32:03Z","author_association":"OWNER","body":"Even though we discussed this in person, I'll reiterate what we decided here:\r\n\r\nThe current classes (Pointer, Pointer.Internal, and Pointer.External) are not thread safe on purpose, as I believe adding a mutex lock to every read/write would add unnecessary overhead for applications where thread safety is not a concern. I don't want to reduce performance just to cover a specific use case. With that said, I do believe it would be beneficial to add a new class called ProtectedPointer, or something like that, that does use a mutex internally to ensure thread safety."}}
{"actor":{"display_login":"ryanpopo"}}