{"action":"opened","issue":{"url":"https://api.github.com/repos/castle-engine/castle-engine/issues/67","repository_url":"https://api.github.com/repos/castle-engine/castle-engine","labels_url":"https://api.github.com/repos/castle-engine/castle-engine/issues/67/labels{/name}","comments_url":"https://api.github.com/repos/castle-engine/castle-engine/issues/67/comments","events_url":"https://api.github.com/repos/castle-engine/castle-engine/issues/67/events","html_url":"https://github.com/castle-engine/castle-engine/issues/67","id":227601509,"number":67,"title":"Safe threaded loading","user":{"login":"eugeneloza","id":10726162,"avatar_url":"https://avatars1.githubusercontent.com/u/10726162?v=3","gravatar_id":"","url":"https://api.github.com/users/eugeneloza","html_url":"https://github.com/eugeneloza","followers_url":"https://api.github.com/users/eugeneloza/followers","following_url":"https://api.github.com/users/eugeneloza/following{/other_user}","gists_url":"https://api.github.com/users/eugeneloza/gists{/gist_id}","starred_url":"https://api.github.com/users/eugeneloza/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eugeneloza/subscriptions","organizations_url":"https://api.github.com/users/eugeneloza/orgs","repos_url":"https://api.github.com/users/eugeneloza/repos","events_url":"https://api.github.com/users/eugeneloza/events{/privacy}","received_events_url":"https://api.github.com/users/eugeneloza/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2017-05-10T08:21:30Z","updated_at":"2017-05-10T08:21:30Z","closed_at":null,"body":"I've been playing around with safe threaded loading of data and eventually made a special safe-loading wrapping for XML/X3D/Image loading: see https://github.com/eugeneloza/decoherence/blob/master/decoinputoutput.pas#L44\r\nThere's still a nasty bug in Debug mode + Linux (see http://forum.lazarus.freepascal.org/index.php/topic,36823.0.html ), but the approach looks altogether useful. Maybe, CGE I/O procedures may be wrapped in Critical Sections as default (tunable with a global compiler directive)?\r\nEven more... maybe the whole render process might be a Critical Section to be able to be released into a thread?"}}
{"actor":{"display_login":"eugeneloza"}}