{"action":"created","issue":{"url":"https://api.github.com/repos/JuliaLang/IJulia.jl/issues/563","repository_url":"https://api.github.com/repos/JuliaLang/IJulia.jl","labels_url":"https://api.github.com/repos/JuliaLang/IJulia.jl/issues/563/labels{/name}","comments_url":"https://api.github.com/repos/JuliaLang/IJulia.jl/issues/563/comments","events_url":"https://api.github.com/repos/JuliaLang/IJulia.jl/issues/563/events","html_url":"https://github.com/JuliaLang/IJulia.jl/pull/563","id":239059053,"number":563,"title":"Improve idle holding behavior through the use of a channel-based interface","user":{"login":"JMurph2015","id":6632756,"avatar_url":"https://avatars6.githubusercontent.com/u/6632756?v=4","gravatar_id":"","url":"https://api.github.com/users/JMurph2015","html_url":"https://github.com/JMurph2015","followers_url":"https://api.github.com/users/JMurph2015/followers","following_url":"https://api.github.com/users/JMurph2015/following{/other_user}","gists_url":"https://api.github.com/users/JMurph2015/gists{/gist_id}","starred_url":"https://api.github.com/users/JMurph2015/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JMurph2015/subscriptions","organizations_url":"https://api.github.com/users/JMurph2015/orgs","repos_url":"https://api.github.com/users/JMurph2015/repos","events_url":"https://api.github.com/users/JMurph2015/events{/privacy}","received_events_url":"https://api.github.com/users/JMurph2015/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":35,"created_at":"2017-06-28T05:48:47Z","updated_at":"2017-07-14T13:51:46Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/JuliaLang/IJulia.jl/pulls/563","html_url":"https://github.com/JuliaLang/IJulia.jl/pull/563","diff_url":"https://github.com/JuliaLang/IJulia.jl/pull/563.diff","patch_url":"https://github.com/JuliaLang/IJulia.jl/pull/563.patch"},"body":"This addresses #562 by creating a channel interface where user code can register channels as semaphores and hold IJulia from firing the 'idle' message.  Also sets the timeout to 0 by default.  Interact.jl compatibility as discussed in #491 is also checked for and naively waited on so that it works until Interact.jl updates to use the channel interface to hold until necessary.  Hope this helps.  \r\n\r\nIf a new type or something is needed, that works for me, I just used the most basic level-trigger that Julia has in the base docs.  \r\n\r\nAlso could use assistance with an error path in case one of the semaphores times out (aka some way to indicate to the user which semaphore was causing issues and where that semaphore came from) "},"comment":{"url":"https://api.github.com/repos/JuliaLang/IJulia.jl/issues/comments/315364663","html_url":"https://github.com/JuliaLang/IJulia.jl/pull/563#issuecomment-315364663","issue_url":"https://api.github.com/repos/JuliaLang/IJulia.jl/issues/563","id":315364663,"user":{"login":"JobJob","id":854183,"avatar_url":"https://avatars7.githubusercontent.com/u/854183?v=4","gravatar_id":"","url":"https://api.github.com/users/JobJob","html_url":"https://github.com/JobJob","followers_url":"https://api.github.com/users/JobJob/followers","following_url":"https://api.github.com/users/JobJob/following{/other_user}","gists_url":"https://api.github.com/users/JobJob/gists{/gist_id}","starred_url":"https://api.github.com/users/JobJob/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JobJob/subscriptions","organizations_url":"https://api.github.com/users/JobJob/orgs","repos_url":"https://api.github.com/users/JobJob/repos","events_url":"https://api.github.com/users/JobJob/events{/privacy}","received_events_url":"https://api.github.com/users/JobJob/received_events","type":"User","site_admin":false},"created_at":"2017-07-14T13:51:46Z","updated_at":"2017-07-14T13:51:46Z","body":"The exception is caught in Reactive [here](https://github.com/JuliaGizmos/Reactive.jl/blob/master/src/core.jl#L344), asynchronously, and the error message is written to STDERR by the default error handling function [here](https://github.com/JuliaGizmos/Reactive.jl/blob/master/src/core.jl#L356). What happens in the front end when you send this message?\r\n\r\nIf you define a custom error handling function to `push!(s, -1; onerror=custom_err_fn)` - you can see the details with `?push!` so you could easily try sending the error.\r\n\r\nI'm now thinking possibly a better solution is for Interact to assume Jupyter is going to use the richest mimetype, i.e. guess the mimetype, and have Interact's ijulia.js only send that \"subscribe_mime\" comm if it got its guess wrong, I bet that would be rare."}}
{"actor":{"display_login":"JobJob"}}