{"action":"opened","issue":{"url":"https://api.github.com/repos/async-interop/event-loop/issues/16","repository_url":"https://api.github.com/repos/async-interop/event-loop","labels_url":"https://api.github.com/repos/async-interop/event-loop/issues/16/labels{/name}","comments_url":"https://api.github.com/repos/async-interop/event-loop/issues/16/comments","events_url":"https://api.github.com/repos/async-interop/event-loop/issues/16/events","html_url":"https://github.com/async-interop/event-loop/issues/16","id":137449612,"number":16,"title":"Capabilities of the underlying loop","user":{"login":"bwoebi","id":3154871,"avatar_url":"https://avatars.githubusercontent.com/u/3154871?v=3","gravatar_id":"","url":"https://api.github.com/users/bwoebi","html_url":"https://github.com/bwoebi","followers_url":"https://api.github.com/users/bwoebi/followers","following_url":"https://api.github.com/users/bwoebi/following{/other_user}","gists_url":"https://api.github.com/users/bwoebi/gists{/gist_id}","starred_url":"https://api.github.com/users/bwoebi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bwoebi/subscriptions","organizations_url":"https://api.github.com/users/bwoebi/orgs","repos_url":"https://api.github.com/users/bwoebi/repos","events_url":"https://api.github.com/users/bwoebi/events{/privacy}","received_events_url":"https://api.github.com/users/bwoebi/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2016-03-01T02:43:15Z","updated_at":"2016-03-01T02:43:15Z","closed_at":null,"body":"The Uv extension exposes functions for watching on signals and to execute operations on files.\r\nOther loops may expose signal handling through pcntl.\r\n\r\na) I assume signal handlers will just throw an exception if you try to register one via onSignal() while unsupported?\r\nb) In general loops are handled by one underlying loop resource (uv, ev) - do we want to be able to expose what type of loop exactly and the underlying loop actually is?\r\n\r\nRegarding b), in Amp, it is simple, we have three implementations and can just check for the actual instance and have one function `getLoop()` (not in the interface) on the `UvReactor`. This can be used by our `amphp/file` library to actually operate on it.\r\n\r\nBut if we are going to have multiple implementations, we need to have a way to access that data (loop type, loop resource if existing).\r\n\r\nI'm not really sure how to shape that though? Maybe a function `getLoop()` returning an array `[$extension, $loop]` … so that it would be `[\"uv\", $the_uv_loop]` or `[\"native\", null]`?\r\nI'm really open to any better suggestion here!"}}