00:00:01  * ircretaryquit (Remote host closed the connection)
00:00:09  * ircretaryjoined
00:02:20  * octetcloudquit (Ping timeout: 252 seconds)
00:02:52  <trevnorris>ping indutny or any other libuv folks
00:06:25  * thlorenzjoined
00:07:35  * emeryjoined
00:09:54  * mcavagejoined
00:17:43  * seldoquit (Remote host closed the connection)
00:19:34  * mikolalysenkojoined
00:21:40  * seldojoined
00:25:52  * rosskquit
00:26:20  * thlorenzquit (Remote host closed the connection)
00:27:56  * thlorenzjoined
00:29:25  * thlorenzquit (Remote host closed the connection)
00:29:40  * thlorenzjoined
00:31:48  * mcavagequit (Remote host closed the connection)
00:37:36  * rmgquit (Remote host closed the connection)
00:46:44  * Qardquit (Quit: Leaving.)
00:46:54  * zz_karupachanged nick to karupa
00:59:12  * kazuponjoined
01:00:12  * dap_quit (Quit: Leaving.)
01:07:33  * benviejoined
01:09:17  * brsonquit (Ping timeout: 264 seconds)
01:19:37  * seldoquit (Remote host closed the connection)
01:21:03  * Qardjoined
01:22:03  * seldojoined
01:26:27  * seldoquit (Remote host closed the connection)
01:26:48  * seldojoined
01:38:10  * rmgjoined
01:42:35  * rmgquit (Ping timeout: 252 seconds)
02:00:16  * julianduquequit (Ping timeout: 265 seconds)
02:11:38  * Ralithquit (Ping timeout: 240 seconds)
02:13:45  * EM3RYjoined
02:33:45  * Ralithjoined
02:36:06  * thlorenzquit (Remote host closed the connection)
02:36:39  * thlorenzjoined
02:40:50  * thlorenzquit (Ping timeout: 240 seconds)
02:40:50  * mikolalysenkoquit (Ping timeout: 240 seconds)
02:40:55  * octetcloudjoined
02:42:11  * emeryquit (Ping timeout: 252 seconds)
02:42:37  * seldoquit (Remote host closed the connection)
02:44:24  * EM3RYquit (Quit: ZNC - http://znc.in)
02:45:24  * emeryjoined
02:51:22  * Orbordejoined
02:51:43  <Orborde>Is there a way to write coroutines in libuv?
02:51:59  <Orborde>Writing state machines to manage my TCP connections is a real drag.
02:58:15  * emery_joined
03:04:30  * c4miloquit (Remote host closed the connection)
03:04:47  * c4milojoined
03:05:08  * c4miloquit (Remote host closed the connection)
03:05:41  * c4milojoined
03:10:24  * bradleymeck_joined
03:10:38  * c4miloquit (Ping timeout: 276 seconds)
03:15:03  <bradleymeck_>any objections/concerns to the debugger JSON API spawning it’s own isolate?
03:15:13  * paulfryzelquit (Remote host closed the connection)
03:15:40  * julianduquejoined
03:19:01  * seldojoined
03:22:13  * c4milojoined
03:22:53  * mikolalysenkojoined
03:23:38  * seldoquit (Ping timeout: 240 seconds)
03:29:15  * emery_quit (Quit: Leaving)
03:30:06  * kazuponquit (Remote host closed the connection)
03:38:06  * julianduquequit (Read error: Connection reset by peer)
03:40:07  * julianduquejoined
03:54:35  * mikolalysenkoquit (Ping timeout: 252 seconds)
04:01:03  * rmgjoined
04:02:17  * c4miloquit (Remote host closed the connection)
04:02:50  * c4milojoined
04:05:56  * rmgquit (Ping timeout: 265 seconds)
04:07:14  * c4miloquit (Ping timeout: 252 seconds)
04:08:05  * octetcloudquit (Ping timeout: 264 seconds)
04:27:31  * kazuponjoined
04:34:37  * mikealquit (Quit: Leaving.)
04:35:22  * mikealjoined
04:45:57  <groundwater>is this anything node can use http://www.html5rocks.com/en/tutorials/developertools/async-call-stack/
04:47:16  * paulfryzeljoined
04:50:06  * kazuponquit (Read error: Connection timed out)
04:51:51  * paulfryzelquit (Ping timeout: 265 seconds)
04:52:11  * kazuponjoined
04:54:17  <bradleymeck_>groundwater: working on it w/ new debugger but idk if we can always turn it on
04:54:57  <groundwater>bradleymeck_: how does it work?
04:55:23  <bradleymeck_>well the call stacks are just a fancy breakpoint handler
04:55:28  <groundwater>it looks highly relevant to async-listener
04:55:31  <bradleymeck_>the evaluating old scopes im not quite sure
04:55:53  <groundwater>bradleymeck_: oh wow, they can lookup values in old scopes too?
04:55:55  <bradleymeck_>but i am not done reading things in v8 source
04:56:06  <groundwater>can you tell i only skimmed the article :p
04:56:20  <bradleymeck_>groundwater: yes errors keep old closures intact but I am not sure how to access them
04:57:14  <groundwater>bradleymeck_: damn, awesome
04:57:30  <groundwater>wait, how would you know to keep the old stack around if the error came much later?
04:57:58  <bradleymeck_>groundwater: it happens at time of error creation?
04:58:19  <bradleymeck_>not sure I understand
04:59:00  <groundwater>bradleymeck_: maybe i'm confusing things
04:59:26  <groundwater>but this looks cool, because it's what async-listener has been trying to do
05:00:32  <bradleymeck_>groundwater: kind of
05:00:40  <groundwater>are these "async call stacks" in v8 only available when debugging?
05:00:48  <bradleymeck_>it cannot be turned on by default, too much of a perf hit, when a debugger is up it is ok
05:01:23  <bradleymeck_>groundwater: unsure in the case of errors, the chained ones are. the old scopes appear to be retained in memory still though even w/o debugger
05:01:54  <bradleymeck_>so chained errors == debugger only, old scopes == maybe?
05:02:20  <groundwater>bradleymeck_: i guess async-listener will live another day
05:02:50  <bradleymeck_>I also need to find a good way to break on error creation rather than throw
05:03:34  <groundwater>bradleymeck_: so any time a new error object is created?
05:03:45  <bradleymeck_>yes in C++ or JS land
05:04:00  <groundwater>i vaguely recall this being possible
05:04:06  <bradleymeck_>would be nice to have more time XD
05:04:15  <groundwater>when's your deadline?
05:04:36  <bradleymeck_>groundwater: oh? the internal/c++ calls are my problem when trying to setup a breakpoint
05:04:47  <bradleymeck_>groundwater: no deadline, just not too much time to work on it
05:06:22  <groundwater>bradleymeck_: are there a lot of c++ errors genrated normally?
05:06:30  <groundwater>i guess TypeErrors
05:06:43  <bradleymeck_>all the internal ones basically
05:06:58  <groundwater>damn...
05:07:25  <bradleymeck_>catching them during throw is pretty easy, and I can set breakpoints on Error as a function
05:07:36  <bradleymeck_>but it doesn’t seem to work
05:07:57  <bradleymeck_>there might be something during the stack trace API init but havent looked
05:08:14  <groundwater>you're past my limit of paged0in knowledge
05:08:15  <groundwater>paged-in*
05:08:44  <bradleymeck_>im past my knowledge and am still learning the internals XD
05:09:00  <groundwater>bradleymeck_: that's awesome, do you have a repo I can look at?
05:09:04  <groundwater>i would love to level up here
05:09:31  <bradleymeck_>no, still learning writing one off scripts until then
05:10:13  <groundwater>bradleymeck_: this is a fucking cool area
05:10:27  <groundwater>anything you got, i think people would love to see it
05:10:36  <bradleymeck_>ummm … debug-debugger.js is a big help if you read it and want to learn more about the JSON debugger api, v8-profiler.h is also a good one but most of it is me running around trying to figure out where things
05:10:51  <bradleymeck_>groundwater: I will have a new debugger built up in the next month or two
05:11:08  <bradleymeck_>https://github.com/joyent/node/issues/7473
05:11:59  <groundwater>bradleymeck_: that's equally awesome and ambitious
05:12:15  <bradleymeck_>its not as ambitious as people think, but it is a lot of work / time
05:13:48  * TooTallNatequit (Quit: Computer has gone to sleep.)
05:14:18  <groundwater>bradleymeck_: it looks cool from the outside
05:14:31  * c4milojoined
05:16:08  <bradleymeck_>groundwater: right now it is a wishlist, they all seem doable, just going to be rather massive in scale
05:16:29  <bradleymeck_>made a terrible proof of concept for the debugger client https://gist.github.com/bmeck/7f5bf6b0672e9d9aa1a4
05:17:34  <groundwater>bradleymeck_: cool, i shall check out
05:17:44  <groundwater>thanks!
05:17:56  <bradleymeck_>works enough to play around and keep extending
05:19:17  * c4miloquit (Ping timeout: 252 seconds)
05:23:14  * kazuponquit (Read error: Connection timed out)
05:27:43  * kazuponjoined
05:27:50  * julianduquequit (Remote host closed the connection)
05:36:15  * hueniversequit (Ping timeout: 276 seconds)
05:39:52  * hueniversejoined
05:44:42  * einaros_changed nick to einaros
05:47:59  * paulfryzeljoined
05:48:25  * Qardquit (Quit: Leaving.)
05:51:10  * Kakerajoined
05:52:45  * paulfryzelquit (Ping timeout: 265 seconds)
05:54:26  * rvaggquit (Ping timeout: 240 seconds)
05:59:46  * rvaggjoined
06:02:41  * julianduquejoined
06:02:43  * kazuponquit (Read error: Connection timed out)
06:04:06  * WalrusPonyquit (Read error: Connection reset by peer)
06:04:47  * WalrusPonyjoined
06:11:58  * kazuponjoined
06:19:34  * roxluquit (Ping timeout: 250 seconds)
06:20:22  * roxlujoined
06:36:44  * mogillquit (Quit: mogill)
06:48:44  * paulfryzeljoined
06:53:39  * paulfryzelquit (Ping timeout: 265 seconds)
06:54:41  * m76joined
07:00:58  * Kakeraquit (Ping timeout: 240 seconds)
07:02:53  * c4milojoined
07:05:34  * bradleymeck_quit (Quit: bradleymeck_)
07:07:19  * prettyrobotsjoined
07:07:29  * c4miloquit (Ping timeout: 264 seconds)
07:15:38  * stephankquit (Ping timeout: 240 seconds)
07:19:27  * petka_joined
07:30:16  * rendarjoined
07:41:10  * saghuljoined
07:41:11  * saghul_joined
07:41:21  * saghul_quit (Client Quit)
07:49:32  * paulfryzeljoined
07:54:04  * paulfryzelquit (Ping timeout: 265 seconds)
08:14:57  * hzjoined
08:50:19  * paulfryzeljoined
08:51:04  * c4milojoined
08:54:58  * paulfryzelquit (Ping timeout: 265 seconds)
08:55:50  * c4miloquit (Ping timeout: 252 seconds)
09:00:07  <MI6>joyent/libuv: Saúl Ibarra Corretgé master * d86d866 : doc: clarify uv_try_write return values - http://git.io/yaWIIQ
09:01:29  * stephankjoined
09:02:35  <indutny>heya
09:03:02  * hzquit
09:06:46  * stephankquit (Ping timeout: 252 seconds)
09:08:12  * stephankjoined
09:16:32  * hzjoined
09:25:45  * seldojoined
09:27:53  * jnugentjoined
09:30:05  * seldoquit (Ping timeout: 252 seconds)
09:32:07  * txdv_joined
09:32:17  <txdv_>is there a way to increase the ref counter in the uv loop in node
09:32:26  <txdv_>so it wont stop doing stuff until i say so
09:34:54  <txdv_>timer has a ref function
09:35:02  <saghul>txdv_: the refcount is no longer a counter in the loop, you need a ref'd handle
09:35:25  <saghul>a ref'd timer, async, anything, will keep the loop alive
09:46:14  <txdv_>o yeah
09:46:19  <txdv_>i remmber now that they moved it
09:46:52  <txdv_>node doesnt expose async
09:47:06  * janjongboomjoined
09:49:24  <txdv_>so setTimeout with super high number is the only way to go?
09:49:25  <txdv_>:D
09:50:59  * paulfryzeljoined
09:52:03  * dqminhjoined
09:55:52  * paulfryzelquit (Ping timeout: 265 seconds)
10:07:44  * inolenjoined
10:08:20  * rendarquit (Read error: Connection reset by peer)
10:08:36  * inolen1quit (Read error: Connection reset by peer)
10:23:58  * janjongboomquit (Ping timeout: 240 seconds)
10:25:10  * janjongboomjoined
10:31:47  * karupachanged nick to zz_karupa
10:37:38  * rendarjoined
10:39:25  * c4milojoined
10:43:38  * c4miloquit (Ping timeout: 240 seconds)
10:51:47  * paulfryzeljoined
10:56:17  * paulfryzelquit (Ping timeout: 265 seconds)
11:08:33  * rmgjoined
11:11:37  * jnugentquit (Quit: Computer has gone to sleep.)
11:12:35  * jnugentjoined
11:13:20  * rmgquit (Ping timeout: 252 seconds)
11:13:30  * jnugentquit (Client Quit)
11:14:37  * jnugentjoined
11:16:00  * jnugentquit (Client Quit)
11:16:54  * jnugentjoined
11:17:52  * jnugentquit (Client Quit)
11:18:52  * jnugentjoined
11:19:15  * jnugentquit (Client Quit)
11:20:08  * jnugentjoined
11:21:25  * jnugentquit (Client Quit)
11:22:20  * jnugentjoined
11:23:18  * jnugentquit (Client Quit)
11:24:15  * jnugentjoined
11:25:24  * jnugentquit (Client Quit)
11:26:21  * jnugentjoined
11:29:52  * jnugentquit (Client Quit)
11:35:52  * mralephjoined
11:38:02  * mraleph1quit (Ping timeout: 240 seconds)
11:52:33  * paulfryzeljoined
11:57:11  * paulfryzelquit (Ping timeout: 265 seconds)
12:07:12  * thlorenzjoined
12:12:43  * thlorenzquit (Remote host closed the connection)
12:14:54  <kkaefer>I'm integrating a libuv event loop in another event loop. how can I tell libuv about my function that it needs to call to wake up my other event loop?
12:15:22  <kkaefer>i.e. libuv calls that function instead of waking up its own event loop (which is run step by step by the other event loop)
12:21:06  <saghul>kkaefer: not sure I follow, can you elaborate? if it's a normal function you can use an idle or prepare handle to call a function on each iteration fo the loop
12:21:14  <MI6>joyent/node: Fedor Indutny master * 0f3b724 : crypto: work around OpenSSL oddness - http://git.io/eXKTag
12:21:51  <kkaefer>saghul: I'm trying to integrate GLFW's glfwWaitEvents()
12:22:01  <kkaefer>this function waits until there is any UI interaction
12:22:10  <kkaefer>and returns as soon as there is
12:22:19  <kkaefer>so I have two options:
12:22:37  <kkaefer>call glfw's event processing functions from libuv's loop
12:23:00  <kkaefer>or call libuv's event processing function (uv_run(..., UV_RUN_NOWAIT)) from glfw's event loop
12:23:23  <kkaefer>in the first case, libuv's loop doesn't wake up even if glfw's event loop queue received an event
12:23:30  <kkaefer>(like the mouse pointer moved)
12:24:02  <kkaefer>in the second case, glfw's event loop doesn't wake up if libuv signals an event to the event loop that I run occasionally with uv_run()
12:24:15  <kkaefer>since glfw doesn't know anything about libuv events naturally
12:25:27  <kkaefer>so I'm thinking that I could somehow tell libuv that if it wants to wake up a certain loop, "here's this call back function to call in order to have this loop woken up"
12:27:02  <kkaefer>I'm looking at libuv's uv_async_send implementation as an example, and it calls uv__async_send
12:27:14  <kkaefer>which only outputs to virtual file descriptors
12:27:24  <kkaefer>but doesn't seem to call any user-supplied callbacks
12:27:46  <saghul>you can use a uv_prepare_t handle
12:28:19  <saghul>if will call the supplied function every loop ietartion, if it's started (the handle)
12:28:47  <kkaefer>well, my issue is that the libuv loop isn't even woken up, so there's no loop iteration
12:29:13  <kkaefer>my issue is that I have two functions that block when there are no events
12:29:21  * sinclair|work_joined
12:29:22  <kkaefer>but I can only call one of them of course
12:29:23  <saghul>hum
12:29:32  * sinclair|workquit (Read error: Connection reset by peer)
12:29:40  * sinclair|work_changed nick to sinclair|work
12:30:00  <kkaefer>and I don't want to use uv_idle or wake up 100x per second, because that would be an ugly hack
12:30:07  <kkaefer>and waste power
12:30:39  * sinclair|workquit (Read error: Connection reset by peer)
12:31:13  * sinclair|workjoined
12:32:15  <saghul>if you call uv_run with NOWAIT every time you poll for events, callbacks will be fired immediately (if there is anything pending)
12:32:29  <saghul>if you call uv_run with NOWAIT every time you poll for events, callbacks will be fired immediately (if there is anything pending)
12:33:58  <kkaefer>saghul: I know that, but the call to glfwWaitEvents() is blocking (it behaves like uv_run(..., UV_RUN_ONCE)
12:34:18  <kkaefer>so I don't have any point where I can call uv_run with nowait
12:34:30  <kkaefer>because my other event loop dispatch function is blocking
12:35:40  <kkaefer>so I either have to wake up my libuv loop when the GLFW LOOP receives events
12:35:49  <kkaefer>or wake up my GLFW loop if the LIBUV LOOP receives events
12:35:53  * thlorenzjoined
12:36:00  <kkaefer>I'm currently not seeing a way to do either
12:36:36  <saghul>kkaefer: AFAIS, you can't run them both at the same time, unless you do it in different threads, that is
12:37:00  * saghulpart ("Once you know what it is you want to be true, instinct is a very useful device for enabling you to know that it is")
12:37:05  * saghuljoined
12:46:26  <kkaefer>sure, so I'm exploringways to wake up other event loops
12:46:55  <kkaefer>GLFW has glfwPostEmptyEvent() that can be called from any thread to wake up the blocking glfwWaitEvents() call
12:47:28  <saghul>kaeso: libuv has uv_async_send, which will do the equivalent
12:47:33  <kkaefer>so if libuv e.g. provides a callback to wake up an event loop, I could use that
12:48:16  <kkaefer>saghul: I know about uv_async_send(), but that only works if the libuv event loop is actually running/blocking
12:49:00  <saghul>sorry, I'm lost :-/ if the loop is not running what do you need to be woken up?
12:49:27  <kkaefer>well, I'm only running it with uv_run(..., UV_RUN_NOWAIT)
12:49:42  <kkaefer>so the loop is never putting the thread to sloop
12:49:47  <kkaefer>and thus can't be woken up
12:49:57  <kkaefer>the actual loop that is running/sleeping is glfw's loop
12:51:11  <saghul>ok, lets see: you have 1 thread, in which the glfw loop is running / sleeping
12:51:23  <saghul>is libuv running on that thread too? or a different one?
12:51:39  <kkaefer>the libuv loop is running in that same thread too
12:51:48  <kkaefer>(libuv of course has other threads, e.g. for the work pool)
12:52:18  <saghul>ok, then both cannot run at the same time, of course, so what do you need libuv to call?
12:52:43  <kkaefer>I'm running uv_queue_work, to perform work in the thread pool
12:52:45  <kkaefer>which works fine
12:53:00  <kkaefer>but they only "return"/get their after callback called once I move the mouse
12:53:08  <kkaefer>since glfw is blocking for UI events in the main thread
12:53:17  <kkaefer>which is where I started the uv work request from
12:53:22  * paulfryzeljoined
12:53:35  <saghul>aha!
12:54:12  <saghul>when the work is complete you'll get the after_work callbacks called, but the loop needs to be running
12:54:34  <kkaefer>yeah, I know that
12:54:41  <kkaefer>I know /why/ it's not working right now
12:54:47  <kkaefer>but I'm looking for ways to make it work :)
12:55:07  <kkaefer>sadly, https://nikhilm.github.io/uvbook/eventloops.html#embedding-libuv-s-event-loop-in-other-libraries seems pretty empty
12:55:34  * mikolalysenkojoined
12:56:24  <saghul>you could run the loop until the work is done but that would froze your UI
12:56:49  <kkaefer>yes
12:57:09  <kkaefer>(also, there is almost always some work being done)
12:57:31  <saghul>the thing is, without having the libuv loop running, there is no way for libuv to tell you that the work completed, so it's kind og a chicken-and-egg problem
12:57:40  <kkaefer>I'm calling glfwPostEmptyEvent(), which wakes up GLFW's event loop as the last thing in the work callback
12:57:48  <kkaefer>but of course there are race conditions
12:57:59  <kkaefer>so it only works in 70-80% of all cases
12:58:05  <saghul>(by work I mean the function you passed to uv_queue_work)
12:58:05  * paulfryzelquit (Ping timeout: 265 seconds)
12:58:10  <kkaefer>yeah
13:00:20  <saghul>but your after_work_cb won't be called unless libuv is running. Have you tried calling that PortEmptyEvent as the last thing in the work function itself?
13:00:43  <kkaefer>yes, but as I said there are race conditions and it only works in 70-80% of all cases
13:00:44  <saghul>(ie, not in the after_work callback)
13:00:49  <saghul>doh
13:00:59  <saghul>isn't that function thread-safe?
13:01:03  <kkaefer>it is
13:01:17  <kkaefer>but there are cases where the glfw loop is woken up, calls the libuv loop
13:01:32  <kkaefer>but the uv_work_queue has not quite returned yet and scheduled the after callback for execution
13:01:38  <kkaefer>(i.e. a race condition)
13:01:40  <saghul>I see
13:01:45  <kkaefer>but that is expected behavior and not a bug
13:01:50  <saghul>yep
13:02:10  <saghul>can you post a specific type of event?
13:02:35  <kkaefer>no
13:06:04  <kkaefer>in glfw, the event wake up is platform specific
13:06:23  <kkaefer>e.g. on os x, it wakes up the nsrunloop that it uses internally by posting an empty mouse cursor move event
13:06:41  * mikolalysenkoquit (Ping timeout: 276 seconds)
13:19:03  * mikolalysenkojoined
13:20:30  <saghul>hum, I can't really think of a way to do this in a race free way without using some lock which you use to set some flag in the work request
13:22:58  * AlexisMocha_joined
13:24:17  * AlexisMochaquit (Ping timeout: 264 seconds)
13:27:18  * nifocquit (Remote host closed the connection)
13:31:59  * thlorenzquit (Remote host closed the connection)
13:41:59  * mikolalysenkoquit (Ping timeout: 255 seconds)
13:47:06  * mikolalysenkojoined
13:54:03  * paulfryzeljoined
13:57:55  * sinclair|workquit (Quit: ChatZilla 0.9.90.1 [Firefox 28.0/20140314220517])
13:58:59  * paulfryzelquit (Ping timeout: 265 seconds)
14:01:15  * bradleymeck_joined
14:05:20  * daviddiasjoined
14:05:44  * nifocjoined
14:07:50  * kazuponquit (Remote host closed the connection)
14:08:53  * kazuponjoined
14:10:17  * thlorenzjoined
14:11:08  * dqminhpart ("Textual IRC Client: www.textualapp.com")
14:13:29  * kazuponquit (Ping timeout: 264 seconds)
14:14:10  * seldojoined
14:17:32  * mikolalysenkoquit (Ping timeout: 276 seconds)
14:18:50  * seldoquit (Ping timeout: 240 seconds)
14:26:21  * mikolalysenkojoined
14:37:07  <kkaefer>saghul: I solved the problem by looking at https://github.com/joyent/libuv/blob/master/test/test-embed.c
14:37:25  <kkaefer>basically, the idea is that you listen to the file descriptor of the main loop in another thread
14:37:46  * thlorenzquit (Remote host closed the connection)
14:37:51  <kkaefer>when there are events in the queue, you send an event to the other event loop (here using glfwPostEmptyEvent())
14:37:59  <saghul>yep, that's one way of doing it, not very portable, but if you don't care about that you are fine :-)
14:38:04  * mikealquit (Quit: Leaving.)
14:38:11  <kkaefer>which wakes up the other event loop, you process the event
14:38:26  <kkaefer>yeah, it works on linux, os x
14:38:30  <kkaefer>but probably not windows
14:39:02  <kkaefer>maybe this could be a good API to have in libuv core
14:39:06  <kkaefer>specifically this part: https://github.com/joyent/libuv/blob/master/test/test-embed.c#L71-L86
14:39:29  <kkaefer>which listens for events on a certain event loop, but /does not execute/ them
14:40:14  <kkaefer>then, https://github.com/joyent/libuv/blob/master/test/test-embed.c#L87 wakes up the other event loop (which in this case is an libuv event loop as well; I'm using glfwPostEmptyEvent() in that case)
14:40:45  <kkaefer>and fire the semaphores so that we don't interfere
14:40:55  <saghul>yep
14:41:12  <saghul>right now it only works on Linux and OSX
14:41:15  <kkaefer>(i.e. the embed_thread_runner thread pauses until https://github.com/joyent/libuv/blob/master/test/test-embed.c#L96 is called in the main thread, executing the event loop
14:41:30  <saghul>I was thinking about this a few days ago (some uv_backend_poll) function
14:41:34  <kkaefer>saghul, thanks for your help
14:41:39  <kkaefer>I'll create a ticket for it
14:41:43  <saghul>kkaefer: no problem :-)
14:42:53  * nsmquit (Quit: ZNC - http://znc.in)
14:46:06  * m76quit (Read error: Connection reset by peer)
14:47:02  * nsmjoined
14:48:17  * nsmquit (Client Quit)
14:48:53  * nsmjoined
14:49:19  * thlorenzjoined
14:49:26  * nsmquit (Client Quit)
14:49:58  * nsmjoined
14:53:24  <kkaefer>saghul: https://github.com/joyent/libuv/issues/1246
14:54:53  * paulfryzeljoined
14:57:31  <saghul>kkaefer: thanks for opening the issue, I'll take a look
14:57:58  <kkaefer>if you like, I can create a small exampe program that integrates libuv and the glfw wait events callback
14:59:13  <kkaefer>API-wise, it's very similar in behavior to uv_run
14:59:16  <saghul>kkaefer: if you already wrote it, gist it and link it to the issue, having a practical example would help
14:59:19  * paulfryz_joined
14:59:24  * paulfryzelquit (Ping timeout: 265 seconds)
14:59:29  <kkaefer>I don't have one atm
14:59:54  <saghul>so far, what I had in mind was uv_backend_poll(timeout) + un_run(NOWAIT)
15:00:06  <saghul>but I haven't put a lot of thought to it
15:00:10  <saghul>yet :-)
15:00:13  * nsmquit (Quit: ZNC - http://znc.in)
15:00:35  <kkaefer>well, what https://github.com/joyent/libuv/blob/master/test/test-embed.c#L71-L86 does is like UV_RUN_ONCE
15:00:41  <kkaefer>except without firing the callbacks
15:00:55  <kkaefer>i.e. "return as soon as there are any events"
15:01:48  <saghul>my idea is to provide a platform independent way of doing that epoll_wait / kevent
15:01:55  <saghul>then you still run the loop with nowait
15:02:22  <saghul>or run_once
15:02:25  <kkaefer>yeah, that's what I'm suggesting
15:02:41  <kkaefer>replace https://github.com/joyent/libuv/blob/master/test/test-embed.c#L71-L86 with one function call
15:02:50  <kkaefer>the rest remains the same in that test-embed.c example
15:03:00  * daviddia_joined
15:03:26  <saghul>ideally that could be uv_backend_poll(uv_default_loop(), uv_backend_timeout(uv_default_loop()))
15:04:26  * daviddiasquit (Ping timeout: 240 seconds)
15:09:09  * paulfryz_changed nick to paulfryzel
15:10:31  * janjongboomquit (Ping timeout: 265 seconds)
15:11:10  * janjongboomjoined
15:12:48  * mcavagejoined
15:16:02  * mikealjoined
15:17:25  * daviddia_quit (Remote host closed the connection)
15:17:59  * daviddiasjoined
15:22:02  * daviddiasquit (Ping timeout: 240 seconds)
15:40:58  * janjongboomquit (Ping timeout: 240 seconds)
15:42:09  * janjongboomjoined
15:44:00  * paulfryzelquit (Read error: Connection reset by peer)
15:44:32  * paulfryzeljoined
15:48:47  * Qardjoined
15:50:06  * mcavagequit (Ping timeout: 252 seconds)
15:55:39  * rmgjoined
16:04:32  * octetcloudjoined
16:07:41  * hzquit
16:14:15  * mcavagejoined
16:15:28  <indutny>heya
16:15:30  <indutny>tjfontaine: yt?
16:20:33  * mogilljoined
16:22:38  * nsmjoined
16:23:05  * bradleymeck_changed nick to bradleymeck
16:23:08  * stephankquit (Ping timeout: 252 seconds)
16:25:05  * dap_joined
16:25:20  * Kakerajoined
16:30:51  * TooTallNatejoined
16:31:13  * paulfryzelquit (Read error: Connection reset by peer)
16:31:38  * paulfryzeljoined
16:31:38  * mikolalysenkoquit (Ping timeout: 255 seconds)
16:32:17  * rosskjoined
16:43:04  * seldojoined
16:43:21  * nsmquit (Quit: ZNC - http://znc.in)
16:44:16  * seldoquit (Remote host closed the connection)
16:44:32  * seldojoined
16:45:40  * mikolalysenkojoined
16:50:19  * paulfryzelquit (Read error: Connection reset by peer)
16:50:38  * paulfryzeljoined
16:51:17  * nsmjoined
16:51:47  * nsmquit (Client Quit)
16:53:56  * janjongboomquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:54:56  * nsmjoined
16:59:41  * mikolalysenkoquit (Ping timeout: 264 seconds)
17:04:32  * c4milojoined
17:08:31  * mikolalysenkojoined
17:17:34  * janjongboomjoined
17:18:05  * thlorenzquit (Remote host closed the connection)
17:22:32  * bradleymeckquit (Quit: bradleymeck)
17:22:38  * dubbanquit (Ping timeout: 240 seconds)