{"action":"opened","issue":{"url":"https://api.github.com/repos/dronecore/DroneCore/issues/389","repository_url":"https://api.github.com/repos/dronecore/DroneCore","labels_url":"https://api.github.com/repos/dronecore/DroneCore/issues/389/labels{/name}","comments_url":"https://api.github.com/repos/dronecore/DroneCore/issues/389/comments","events_url":"https://api.github.com/repos/dronecore/DroneCore/issues/389/events","html_url":"https://github.com/dronecore/DroneCore/issues/389","id":321242708,"number":389,"title":"Implement thread pooling for user callbacks","user":{"login":"julianoes","id":1419688,"avatar_url":"https://avatars3.githubusercontent.com/u/1419688?v=4","gravatar_id":"","url":"https://api.github.com/users/julianoes","html_url":"https://github.com/julianoes","followers_url":"https://api.github.com/users/julianoes/followers","following_url":"https://api.github.com/users/julianoes/following{/other_user}","gists_url":"https://api.github.com/users/julianoes/gists{/gist_id}","starred_url":"https://api.github.com/users/julianoes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/julianoes/subscriptions","organizations_url":"https://api.github.com/users/julianoes/orgs","repos_url":"https://api.github.com/users/julianoes/repos","events_url":"https://api.github.com/users/julianoes/events{/privacy}","received_events_url":"https://api.github.com/users/julianoes/received_events","type":"User","site_admin":false},"labels":[{"id":629977269,"url":"https://api.github.com/repos/dronecore/DroneCore/labels/enhancement","name":"enhancement","color":"84b6eb","default":true}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-05-08T15:46:38Z","updated_at":"2018-05-08T15:46:38Z","closed_at":null,"author_association":"CONTRIBUTOR","body":"In order to prevent user callbacks from blocking the receive thread like it happened in #373, we need to make sure not to call user callbacks in the receive thread.\r\n\r\nThis was fixed in #387 but the change introduces a memory leak and potentially a lot of overhead by using `std::async` and spawning a thread everytime (depending on the compiler).\r\n\r\nFYI: @shakthi-prashanth-m @anitha-suresh \r\n\r\nhttps://github.com/dronecore/DroneCore/blob/d0c47bb3c749738feb9d04db807e9fba93c7688e/core/mavlink_system.cpp#L878-L889\r\n\r\nWe should decide if that is something to implement ourselves or use a library/dependency."}}
{"actor":{"display_login":"julianoes"}}