{"action":"created","issue":{"url":"https://api.github.com/repos/MSLNZ/msl-loadlib/issues/18","repository_url":"https://api.github.com/repos/MSLNZ/msl-loadlib","labels_url":"https://api.github.com/repos/MSLNZ/msl-loadlib/issues/18/labels{/name}","comments_url":"https://api.github.com/repos/MSLNZ/msl-loadlib/issues/18/comments","events_url":"https://api.github.com/repos/MSLNZ/msl-loadlib/issues/18/events","html_url":"https://github.com/MSLNZ/msl-loadlib/pull/18","id":421334009,"node_id":"MDExOlB1bGxSZXF1ZXN0MjYxNDA3ODQ0","number":18,"title":"Add RPC timeout, fix freezing so it doesn't assume pyinstaller in the env is 32 bit, and facilities for the server to shut itself down.","user":{"login":"fake-name","id":1401239,"node_id":"MDQ6VXNlcjE0MDEyMzk=","avatar_url":"https://avatars1.githubusercontent.com/u/1401239?v=4","gravatar_id":"","url":"https://api.github.com/users/fake-name","html_url":"https://github.com/fake-name","followers_url":"https://api.github.com/users/fake-name/followers","following_url":"https://api.github.com/users/fake-name/following{/other_user}","gists_url":"https://api.github.com/users/fake-name/gists{/gist_id}","starred_url":"https://api.github.com/users/fake-name/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fake-name/subscriptions","organizations_url":"https://api.github.com/users/fake-name/orgs","repos_url":"https://api.github.com/users/fake-name/repos","events_url":"https://api.github.com/users/fake-name/events{/privacy}","received_events_url":"https://api.github.com/users/fake-name/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":4,"created_at":"2019-03-15T03:10:25Z","updated_at":"2019-03-19T20:43:47Z","closed_at":"2019-03-19T07:34:49Z","author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/MSLNZ/msl-loadlib/pulls/18","html_url":"https://github.com/MSLNZ/msl-loadlib/pull/18","diff_url":"https://github.com/MSLNZ/msl-loadlib/pull/18.diff","patch_url":"https://github.com/MSLNZ/msl-loadlib/pull/18.patch"},"body":"Basically the title:\r\n\r\n - 82b3a43 adds a timeout to RPC calls, so you can handle contexts where the remote goes away or gets stuck forever.\r\n - 0371582 Fixes the fact that `freeze_server32.py` assumes that invoking `PyInstaller` in the shell will point to the *32* bit pyinstaller binary. I literally have python32 for this project, and nothing else, and it's not on the `PATH`, so I wound up accidentally building a 64-bit server32 (which unsurprisingly didn't work at all)  \r\nRather then just invoking pyinstaller, it now looks at how the script file itself was invoked, and uses that to then execute `<python cmd> -m PyInstaller ...`. This will probably help for other oddbal environments too.\r\n - 3ec1c33 adds a new exception (`ServerExit`), which the server can raise and will cause the server to gracefully shutdown. This is somewhat nicer then the brute-force `_proc.terminate()` that's currently relied upon, and should let the server do any cleanup too.  \r\nI needed this because my server class fires up some worker threads, and terminate would just orphan them.\r\n\r\nThe various commits should be cherry-pickable, if needed."},"comment":{"url":"https://api.github.com/repos/MSLNZ/msl-loadlib/issues/comments/474576842","html_url":"https://github.com/MSLNZ/msl-loadlib/pull/18#issuecomment-474576842","issue_url":"https://api.github.com/repos/MSLNZ/msl-loadlib/issues/18","id":474576842,"node_id":"MDEyOklzc3VlQ29tbWVudDQ3NDU3Njg0Mg==","user":{"login":"fake-name","id":1401239,"node_id":"MDQ6VXNlcjE0MDEyMzk=","avatar_url":"https://avatars1.githubusercontent.com/u/1401239?v=4","gravatar_id":"","url":"https://api.github.com/users/fake-name","html_url":"https://github.com/fake-name","followers_url":"https://api.github.com/users/fake-name/followers","following_url":"https://api.github.com/users/fake-name/following{/other_user}","gists_url":"https://api.github.com/users/fake-name/gists{/gist_id}","starred_url":"https://api.github.com/users/fake-name/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fake-name/subscriptions","organizations_url":"https://api.github.com/users/fake-name/orgs","repos_url":"https://api.github.com/users/fake-name/repos","events_url":"https://api.github.com/users/fake-name/events{/privacy}","received_events_url":"https://api.github.com/users/fake-name/received_events","type":"User","site_admin":false},"created_at":"2019-03-19T20:43:47Z","updated_at":"2019-03-19T20:43:47Z","author_association":"CONTRIBUTOR","body":"Awesome!\r\n\r\nOne other (really minor) comment would be that noting how you re-freeze the server somewhere in the docs would be nice.  "}}
{"actor":{"display_login":"fake-name"}}