00:00:01  * ircretaryquit (Remote host closed the connection)
00:00:09  * ircretaryjoined
00:04:58  * tylerantonjoined
00:14:30  * reqshark_joined
00:19:01  * reqshark_quit (Ping timeout: 264 seconds)
00:27:51  * Damn3djoined
00:28:34  * avalanche123quit (Remote host closed the connection)
00:33:54  * thlorenzjoined
00:38:37  * thlorenzquit (Ping timeout: 250 seconds)
00:40:14  * Fishrockquit (Quit: Leaving...)
00:40:14  * Ralithquit (Ping timeout: 245 seconds)
00:43:30  * jgiquit (Quit: jgi)
00:47:13  * wolfeidaujoined
00:49:07  * jgijoined
00:56:27  * avalanche123joined
01:13:18  * jgiquit (Quit: jgi)
01:13:19  * Ralithjoined
01:19:01  * brsonjoined
01:19:22  * tylerantonquit (Quit: tyleranton)
01:27:00  * avalanche123quit (Remote host closed the connection)
01:29:44  * tylerantonjoined
01:35:03  * thlorenzjoined
01:39:33  * thlorenzquit (Ping timeout: 248 seconds)
01:40:20  * qardquit (Quit: leaving)
01:49:34  * tylerantonquit (Quit: tyleranton)
01:49:42  * jgijoined
02:01:53  * jgiquit (Quit: jgi)
02:03:43  * AvianFlujoined
02:12:39  * tylerantonjoined
02:22:53  * tylerantonquit (Quit: tyleranton)
02:27:32  * avalanche123joined
02:31:58  * avalanche123quit (Ping timeout: 250 seconds)
02:36:08  * tylerantonjoined
02:41:12  * avalanche123joined
02:45:57  * tylerantonquit (Quit: tyleranton)
02:58:05  * avalanche123quit (Remote host closed the connection)
02:58:45  * rmgquit (Remote host closed the connection)
03:04:41  * Left_Turnquit (Remote host closed the connection)
03:12:55  * tylerantonjoined
03:20:21  * wolfeidauquit (Remote host closed the connection)
03:22:55  * wolfeidaujoined
03:23:53  * thlorenzjoined
03:28:33  * thlorenzquit (Ping timeout: 256 seconds)
03:29:05  * wolfeidauquit (Remote host closed the connection)
03:52:25  * jgijoined
03:52:58  * jgiquit (Client Quit)
03:58:29  * avalanche123joined
03:59:19  * rmgjoined
04:00:26  * avalanche123quit (Remote host closed the connection)
04:00:31  * avalanch_joined
04:03:23  * importantshockquit (Remote host closed the connection)
04:04:45  * rmgquit (Ping timeout: 264 seconds)
04:20:29  * brsonquit (Quit: leaving)
04:20:50  * brsonjoined
04:38:49  * avalanch_quit (Remote host closed the connection)
04:39:32  * avalanche123joined
04:43:13  * avalanche123quit (Remote host closed the connection)
04:43:20  * avalanche123joined
04:44:38  * avalanche123quit (Remote host closed the connection)
04:46:21  * cndquit (Read error: Connection reset by peer)
04:46:36  * mikolalysenkoquit (Ping timeout: 272 seconds)
04:46:36  * bretquit (Ping timeout: 272 seconds)
04:46:53  * iamstefquit (Ping timeout: 252 seconds)
04:46:53  * Raynosquit (Ping timeout: 252 seconds)
04:46:53  * parshapquit (Ping timeout: 252 seconds)
04:47:14  * olfoxquit (Ping timeout: 272 seconds)
04:47:29  * cndjoined
04:47:38  * eugenewarequit (Ping timeout: 252 seconds)
04:49:00  * olfoxjoined
04:49:09  * bretjoined
04:49:25  * mikolalysenkojoined
04:49:39  * parshapjoined
04:50:29  * eugenewarejoined
04:51:19  * Raynosjoined
04:56:48  * avalanche123joined
04:56:51  * iamstefjoined
04:58:51  * thlorenzjoined
05:00:31  * avalanche123quit (Remote host closed the connection)
05:04:29  * thlorenzquit (Remote host closed the connection)
05:09:09  * tylerantonquit (Quit: tyleranton)
05:13:41  * tylerantonjoined
05:18:47  * wolfeidaujoined
05:32:16  * tylerantonquit (Quit: tyleranton)
06:00:56  * avalanche123joined
06:05:19  * thlorenzjoined
06:05:57  * avalanche123quit (Ping timeout: 264 seconds)
06:06:59  * brsonquit (Quit: leaving)
06:10:45  * thlorenzquit (Ping timeout: 264 seconds)
06:45:14  <txdv>want to take a nap
06:45:15  <txdv>but cant
06:47:45  * jreyno40joined
06:49:30  * rmgjoined
06:51:50  * jreyno40part
06:54:06  * rmgquit (Ping timeout: 256 seconds)
06:54:50  * AvianFluquit (Remote host closed the connection)
07:24:12  * roxlujoined
07:25:41  * edwin_liujoined
07:52:19  * ferossquit (Read error: Connection reset by peer)
07:54:29  * thlorenzjoined
07:57:25  * ferossjoined
07:58:59  * thlorenzquit (Ping timeout: 245 seconds)
08:26:19  * SergeiRNDjoined
08:33:26  * rendarjoined
08:55:15  * thlorenzjoined
08:59:00  * seishunjoined
08:59:44  * thlorenzquit (Ping timeout: 244 seconds)
09:08:45  * Left_Turnjoined
09:28:05  * edwin_liuquit (Remote host closed the connection)
09:33:27  * MLMquit (Quit: Connection closed for inactivity)
10:21:16  * seishunquit (Remote host closed the connection)
10:44:11  * thlorenzjoined
10:44:23  * seishunjoined
10:48:34  * thlorenzquit (Ping timeout: 250 seconds)
11:04:19  * seishunquit (Remote host closed the connection)
11:18:20  * SergeiRNDquit (Quit: Leaving.)
11:36:40  * seishunjoined
11:44:56  * thlorenzjoined
11:49:40  * thlorenzquit (Ping timeout: 250 seconds)
11:50:03  * saghul|afkquit (Ping timeout: 256 seconds)
11:51:35  * saghuljoined
11:53:22  * SergeiRNDjoined
11:57:05  * seishunquit (Remote host closed the connection)
12:17:48  * SergeiRNDquit (Quit: Leaving.)
12:20:32  * seishunjoined
12:48:25  * toothrotquit (Ping timeout: 264 seconds)
13:04:09  * alexforsterjoined
13:05:07  * SergeiRNDjoined
13:30:47  * thlorenzjoined
13:35:09  * thlorenzquit (Ping timeout: 250 seconds)
13:37:59  * Fishrock123joined
13:42:05  * chris_99joined
13:48:45  * davijoined
14:13:35  * seishunquit (Remote host closed the connection)
14:19:29  * AvianFlujoined
14:23:03  * thlorenzjoined
14:35:09  * SergeiRND1joined
14:38:01  * avalanche123joined
14:38:59  * SergeiRNDquit (Ping timeout: 246 seconds)
14:39:20  * SergeiRND1quit (Ping timeout: 246 seconds)
14:42:02  <roxlu>hey
14:42:19  <roxlu>Does someone knows if I need to keep track of the `struct kevent` when I want to register a fd to a kqueue ?
14:42:47  * seishunjoined
14:46:52  * rmgjoined
14:47:07  * jgijoined
14:47:31  * daviquit (Ping timeout: 255 seconds)
14:50:44  * avalanche123quit (Remote host closed the connection)
15:03:18  * jgiquit (Quit: jgi)
15:04:10  * jgijoined
15:05:27  * jgiquit (Client Quit)
15:15:14  <roxlu>Ohh.. of course I should ^.^
15:15:25  * MLMjoined
15:16:04  * avalanche123joined
15:21:12  * avalanche123quit (Ping timeout: 272 seconds)
15:52:02  * thlorenzquit (Ping timeout: 244 seconds)
16:01:23  * thlorenzjoined
16:10:40  * thlorenz_joined
16:12:49  * thloren__joined
16:13:01  * thlorenzquit (Ping timeout: 264 seconds)
16:14:31  * thlorenzjoined
16:16:14  * thlorenz_quit (Ping timeout: 256 seconds)
16:16:42  * davijoined
16:18:05  * thloren__quit (Ping timeout: 256 seconds)
16:18:07  * dap_joined
16:20:03  * thlorenz_joined
16:22:57  * SergeiRNDjoined
16:23:02  * thlorenzquit (Ping timeout: 256 seconds)
16:23:57  * thlorenzjoined
16:26:46  * thlorenz_quit (Ping timeout: 265 seconds)
16:34:09  * tylerantonjoined
16:37:12  * tylerantonquit (Client Quit)
16:38:23  <creationix>libuv is thread-safe as long as I never use the same uv_loop on different threads right?
16:38:31  <creationix>(adding threading support to luv)
16:39:07  <creationix>I’ll also need a new lua_State per thread, it has the same constraints I think.
16:40:18  <Ralith>creationix: note also uv_async
16:40:25  <Ralith>for inter-thread communication
16:40:47  <creationix>right
16:41:04  * avalanche123joined
16:41:56  <creationix>hmm, if multiple threads have multiple uv_loops, but are all trying to write to stdout, they will walk on eachother right?
16:42:24  <creationix>assuming each loop can share the stdout fd
16:46:17  <Ralith>libuv does not normally have much to do with what you do on stdout
16:46:33  <Ralith>if you're asking a question about your OS or C APIs, you should consult the relevant specifications
16:47:59  <nathan7>creationix: You can do locking around stdout
16:48:31  <nathan7>creationix: but yes, in general, you are expected to coordinate fd access yourself
16:48:32  * roxluquit (Quit: My Mac has gone to sleep. ZZZzzz…)
16:48:37  <creationix>sounds good
16:49:17  <creationix>mostly I’m trying to figure out how to map http://docs.libuv.org/en/v1.x/threading.html to a scripting language
16:49:43  <Ralith>those are pretty standard multithreading primitives
16:50:24  <Ralith>shouldn't have any special sensitivity to scripting languages
16:50:41  <creationix>the docs are pretty sparse. I’ve never done threading in posix
16:50:52  <creationix>I guess I can look up the man pages and get a rough idea how to use them
16:55:26  * tylerantonjoined
16:56:55  * rmgquit (Remote host closed the connection)
16:58:38  * Ralithquit (Ping timeout: 250 seconds)
17:08:09  * SergeiRNDquit (Quit: Leaving.)
17:09:32  * Tux64quit (Quit: Connection closed for inactivity)
17:15:35  * thlorenzquit (Ping timeout: 265 seconds)
17:20:50  * Ralithjoined
17:35:18  * thlorenzjoined
17:40:56  * thlorenz_joined
17:41:09  * thlorenzquit (Ping timeout: 248 seconds)
17:42:12  * SergeiRNDjoined
17:45:05  * thlorenz_quit (Remote host closed the connection)
17:56:56  * milesjoined
17:57:31  * rmgjoined
18:01:41  <miles>why does uv_run(loop, UV_RUN_NOWAIT) returns 1 even when there's no events to be processed or callbacks called, i dont get the logic out of this
18:02:03  <miles>for the reference im using the loop to poll atm only a single socket, yet i already have headaches with it
18:02:55  * rmgquit (Ping timeout: 256 seconds)
18:08:37  * roxlujoined
18:44:33  * daviquit (Ping timeout: 252 seconds)
18:45:54  * thlorenzjoined
18:50:37  * thlorenzquit (Ping timeout: 250 seconds)
19:03:27  * MLMquit (Quit: Connection closed for inactivity)
19:08:57  * avalanche123quit (Remote host closed the connection)
19:10:47  * avalanche123joined
19:34:00  <txdv>miles: em
19:34:53  <txdv>miles: UV_RUN_NOWAIT: Poll for i/o once but don’t block if there are no pending callbacks. Returns zero if done (no active handles or requests left), or non-zero if more callbacks are expected (meaning you should run the event loop again sometime in the future).
19:35:05  <txdv>did you read the documentation?
19:35:16  <txdv>miles: you are probably doing a connect, which is not fully executed (the callback is not called)
19:35:25  <txdv>so it is telling you RUN ME AGAIN SOMETIME IN THE FUTURE, SO I CAN CONNECT!
19:36:40  <txdv>miles: are you telling me that there are events that you are awaiting and it is still returning > 0?
19:37:04  <txdv>if so please create a minimal test case, then create an issue on github and put the minimal test case up there
19:37:18  <txdv>together with information about your system
19:37:26  <txdv>cpu arch/os
19:38:38  <txdv>creationix: does lua support threading?
19:39:03  <creationix>txdv: it does as long as each thread has it’s own lua state
19:39:24  <creationix>so no shared lua state between threads
19:39:42  <txdv>creationix: when I wrote my bindings for C# I left all of those primites out because the BCL(Base Class Libary)(the Standard Library of C#) has all of those exposed already
19:39:57  <creationix>lua itself is just posix
19:40:02  <creationix>it doesn’t even have readdir
19:40:13  <creationix>and certainly no threads in the stdlib
19:40:26  <creationix>it’s meant to be embedded in C projects which have their own fs and threading libraries
19:40:28  <txdv>so lua is always single threaded?
19:40:36  <txdv>a ok i understand
19:40:57  <creationix>right, it’s just a vm, you can use it multithreaded assuming you follow the proper constraints
19:41:08  <txdv>i guess in your case you could expose what libuv exposes
19:41:15  <creationix>lualanes is a popular threading model for lua https://github.com/LuaLanes/lanes
19:41:19  <creationix>but it has it’s own event loop
19:41:47  <creationix>right, exposing what libuv provides is the idea, it’s just a question of how
19:42:04  <txdv>im not familiar with the constraints of lua
19:42:14  <creationix>https://github.com/luvit/luv/pull/133
19:42:27  <creationix>it’s basically the same as libuv
19:42:34  <creationix>one uv_loop per thread, one lua_State per thread
19:43:20  <creationix>you can’t pass lua values between lua states so they need to be serialized or use special hacks like lualanes does
19:44:36  <txdv>serializing lists and strings and stuff is easy right?
19:45:03  <txdv>its a strange limitation though
19:45:16  <txdv>i dont have that one in C#, i can just pass the entire object from one thread to another
19:45:31  <txdv>note that one could create like 2 loops running in one thread
19:45:39  <txdv>there is the possibility
19:45:51  <txdv>the question is, do you really need threads in what you are trying to achieve creationix?
19:46:08  <txdv>last time you needed lua for monitoring virtual servers or something
19:46:24  <creationix>I don’t need threads, but some users of luvit want it
19:46:33  <creationix>it’s slightly more effecient than multiple processes
19:46:49  <creationix>and C addons could share memory in-process between threads and manage it manually
19:46:58  <creationix>basically I want to implement web-workers for luvit
19:48:04  <txdv>so lua is just as single threaded by VM design as javascript is
19:48:12  <txdv>or at least the popular implementations are
19:48:22  <txdv>lualanes does a bunch of hacks you say?
19:48:50  <txdv>Linux NTPL 2.5 (Ubuntu 7.04) was used in the testing of Lua Lanes.
19:49:13  <txdv>that readme line is 8 years old
19:49:17  <txdv>in the lualanes repo
19:51:52  <txdv>sounds like a lot of work
19:58:16  * Fishrock123quit (Remote host closed the connection)
20:01:20  * rendarquit (Ping timeout: 252 seconds)
20:01:42  * thlorenzjoined
20:02:13  * tylerantonquit (Quit: tyleranton)
20:02:41  * tylerantonjoined
20:02:58  * tylerantonquit (Client Quit)
20:06:34  * thlorenzquit (Ping timeout: 255 seconds)
20:07:12  * rendarjoined
20:08:49  * tylerantonjoined
20:10:59  * tylerantonquit (Client Quit)
20:25:50  <creationix>txdv: yeah, my plan is just to implement a worker-like interface that shares no state with the other threads and has serialized message passing
20:26:16  <txdv>like js webworkers
20:26:25  <creationix>right, like web workers
20:26:44  <txdv>its easy to implement and usually enough for people who want to do heavy calculation
20:26:50  <creationix>that will be especially useful combined with luajit’s ffi to consume blocking C libraries without blocking the event loop
20:27:16  <creationix>it won’t be as effecient as proper libuv integration, but it’s better than blocking
20:35:16  <txdv>what is proper libuv integrationD?
20:38:49  * tylerantonjoined
20:42:16  <creationix>txdv: well, proper integration is often hard or impossible. But it should use the internal kqueue or epoll or iocp somehow to integrarte properly
20:43:08  <txdv>but sharing lua objects between threads is impossible as far as i understood
20:46:10  * MLMjoined
20:46:42  * thlorenzjoined
20:48:07  * thlorenzquit (Read error: No route to host)
20:50:25  * thlorenz_joined
20:50:33  * thlorenz_quit (Remote host closed the connection)
20:51:04  * alexforsterquit
20:51:36  * thlorenzjoined
20:55:30  * thlorenzquit (Remote host closed the connection)
20:55:40  * SergeiRNDquit (Quit: Leaving.)
20:59:24  * Fishrock123joined
21:01:44  * tylerantonquit (Quit: tyleranton)
21:03:12  * thlorenzjoined
21:04:06  * Fishrock123quit (Ping timeout: 256 seconds)
21:06:53  * tylerantonjoined
21:09:53  * thlorenzquit (Remote host closed the connection)
21:17:39  * rmgjoined
21:19:41  * tylerantonquit (Quit: tyleranton)
21:20:01  * thlorenzjoined
21:21:22  * avalanche123quit (Remote host closed the connection)
21:22:11  * rmgquit (Ping timeout: 246 seconds)
21:23:02  * avalanche123joined
21:32:11  * rmgjoined
21:34:30  * tylerantonjoined
21:46:53  * tylerantonquit (Quit: tyleranton)
21:54:51  * alexforsterjoined
21:55:28  * alexforsterquit (Client Quit)
21:56:02  * rendarquit
21:56:21  * alexforsterjoined
21:56:38  * tylerantonjoined
21:59:54  * Fishrock123joined
22:01:22  * toothrotjoined
22:04:23  * Fishrock123quit (Ping timeout: 252 seconds)
22:12:22  * roxluquit (Quit: My Mac has gone to sleep. ZZZzzz…)
22:16:53  * seishunquit (Ping timeout: 248 seconds)
22:18:15  <miles>actually was a mistake on my part as UV_RUN_NOWAIT also returns the reffed handles, so it will never return 0 when waiting for polling, even if no polling events (no callback calls) occurs
22:18:46  <miles>i circumvented this by incrementing an index from within the callback so i know how many times my callback got executed
22:20:09  <miles>i find this a design flaw though, and honestly thought out by monkeys : UV_RUN_NOWAIT should imo return the number of times a callbacks get executed before returning, would be MUCH more useful this way
22:20:39  <miles>no offense though, the lib is amazing, just that this thing was a lil annoyance
22:23:58  * Fishrock123joined
22:25:43  * alexforsterquit
22:28:05  * tylerantonquit (Quit: tyleranton)
22:28:40  * tylerantonjoined
22:34:07  * thlorenz_joined
22:36:19  * thloren__joined
22:37:05  * thlorenzquit (Ping timeout: 246 seconds)
22:38:06  * thlorenzjoined
22:38:34  * alexforsterjoined
22:39:35  * thlorenz_quit (Ping timeout: 252 seconds)
22:40:34  * alexforsterquit (Client Quit)
22:41:38  * thloren__quit (Ping timeout: 246 seconds)
22:48:23  * tylerantonquit (Quit: tyleranton)
22:49:02  * tylerantonjoined
22:49:29  <Ralith>miles: you're not using uv_run the way it's intended to be used
22:50:26  <Ralith>why aren't you passing UV_RUN_DEFAULT?
22:52:46  * thlorenzquit (Ping timeout: 264 seconds)
22:54:24  * thlorenzjoined
23:04:27  * thlorenz_joined
23:06:39  * thloren__joined
23:07:47  * thlorenzquit (Ping timeout: 256 seconds)
23:09:29  * thlorenzjoined
23:10:21  * thlorenz_quit (Ping timeout: 265 seconds)
23:13:18  * thloren__quit (Ping timeout: 256 seconds)
23:13:52  * AvianFluquit (Remote host closed the connection)
23:15:18  * rmgquit (Remote host closed the connection)
23:15:38  * thlorenzquit (Remote host closed the connection)
23:17:39  * thlorenzjoined
23:23:20  <miles>how is it intended to be used? i dont see much difference between UV_RUN_DEFAULT and UV_RUN_NOWAIT as it us to be honest. i dont see the usefulness of the latter if with UV_RUN_NOWAIT we cannot know when there are no more events occurring.
23:24:32  <miles>the reason we want it non blocking imo is that we want to process some events and then continue other tasks while waiting for events, hence why i would see it more logic for UV_RUN_NOWAIT to return the number of pending events to be processed, apart from the ref'ed handles (so it returns 0 if theres no events to be processed)
23:27:39  <avalanche123>miles: you want to wait until you have something to do, as to not burn the CPU. If you want to do something periodically or otherwise in between io polls, use timers, prepare and idle handles
23:31:12  <miles>well, thats the thing, im in a realtime context, i dont want to sleep between frames
23:34:02  <avalanche123>ah, I think the issue is that, as far as I can tell, libuv loop is designed with different assumptions in mind, e.g. not for strictly realtime systems, you might have to use something else in realtime context, like QP Framework...
23:34:16  * thlorenz_joined
23:37:31  * thlorenzquit (Read error: Connection reset by peer)
23:37:54  * thlorenzjoined
23:38:47  * chris_99quit (Remote host closed the connection)
23:39:10  * tylerantonquit (Quit: tyleranton)
23:41:46  * thlorenz_quit (Ping timeout: 265 seconds)
23:44:58  * tylerantonjoined
23:48:19  * milojquit (Ping timeout: 250 seconds)
23:55:43  * milojjoined
23:58:51  * thlorenz_joined
23:59:17  * thlorenzquit (Read error: Connection reset by peer)
23:59:41  * thlorenzjoined