{"action":"opened","issue":{"url":"https://api.github.com/repos/unioslo/tsdfx/issues/117","repository_url":"https://api.github.com/repos/unioslo/tsdfx","labels_url":"https://api.github.com/repos/unioslo/tsdfx/issues/117/labels{/name}","comments_url":"https://api.github.com/repos/unioslo/tsdfx/issues/117/comments","events_url":"https://api.github.com/repos/unioslo/tsdfx/issues/117/events","html_url":"https://github.com/unioslo/tsdfx/issues/117","id":171153411,"number":117,"title":"One-shot mode may terminate prematurely","user":{"login":"dag-erling","id":4972155,"avatar_url":"https://avatars.githubusercontent.com/u/4972155?v=3","gravatar_id":"","url":"https://api.github.com/users/dag-erling","html_url":"https://github.com/dag-erling","followers_url":"https://api.github.com/users/dag-erling/followers","following_url":"https://api.github.com/users/dag-erling/following{/other_user}","gists_url":"https://api.github.com/users/dag-erling/gists{/gist_id}","starred_url":"https://api.github.com/users/dag-erling/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dag-erling/subscriptions","organizations_url":"https://api.github.com/users/dag-erling/orgs","repos_url":"https://api.github.com/users/dag-erling/repos","events_url":"https://api.github.com/users/dag-erling/events{/privacy}","received_events_url":"https://api.github.com/users/dag-erling/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2016-08-15T11:28:40Z","updated_at":"2016-08-15T11:28:40Z","closed_at":null,"body":"In `tsdfx_{copy,scan}_sched()`, if the run queues are full, all idle tasks in the task set precede all running tasks, and all running tasks have terminated but not yet been polled, the main loop will reap all completed or failed tasks but will not start any new ones. The function will then return 0 (no tasks running). If both functions return 0, the main loop in `tsdfx_run()` will then terminate prematurely, because it does not know about the idle tasks.\r\n\r\nThe easy way to fix this issue is to modify `tsdfx_{copy,scan}_sched()` so they report the number of tasks currently running *or waiting to run*. The hard (but correct) way to fix it is to rewrite the task queue code to work like a real process queue."}}
{"actor":{"display_login":"dag-erling"}}