00:00:00  * brsonquit (Ping timeout: 272 seconds)
00:00:09  * ircretaryjoined
00:10:58  <piscisaureus>you're welcome
00:24:54  * importantshockjoined
00:29:41  * PeterRabbitquit (Read error: Connection reset by peer)
00:33:11  * jreyno40joined
00:35:49  * octetcloudquit (Ping timeout: 256 seconds)
00:46:01  <rendar>piscisaureus, so the threadpool used for file i/o will be in a different loop function than the loop function running epoll/kqueue/etc stuff
00:48:22  <piscisaureus>rendar: it probably uses a condition variable
00:48:29  <rendar>ok
00:49:23  <rendar>piscisaureus, even in that case, you'll need 2 (or more) threads: 1 for epoll/kqueue and one for file i/o right?
00:49:54  <piscisaureus>rendar: yes, some thread pool threads are always created
00:50:05  <rendar>got it
00:51:32  * rendarquit (Quit: Leaving)
00:54:33  * iarnajoined
00:59:42  * abraxas_joined
01:02:59  * Ralithquit (Ping timeout: 252 seconds)
01:04:09  * iarnaquit (Ping timeout: 264 seconds)
01:04:51  * abraxas_quit (Ping timeout: 264 seconds)
01:05:51  * dap_quit (Quit: Leaving.)
01:12:04  * swajquit (Remote host closed the connection)
01:12:20  * AvianFlujoined
01:12:41  * a_lequit (Remote host closed the connection)
01:24:21  * plumbquit (Ping timeout: 276 seconds)
01:24:47  * plumbjoined
01:25:17  * warehouse13joined
01:27:39  * Left_Turnquit (Ping timeout: 264 seconds)
01:31:13  * Ralithjoined
01:36:41  * WalrusPonyjoined
01:40:59  * warehouse13quit (Ping timeout: 256 seconds)
01:41:00  * a_lejoined
01:57:12  * Fishrock|foodschanged nick to Fishrock123
02:00:25  * iarnajoined
02:01:22  * plumbquit (Ping timeout: 240 seconds)
02:02:33  * plumbjoined
02:02:58  * AvianFluquit (Ping timeout: 255 seconds)
02:05:03  * stagasjoined
02:10:35  * iarnaquit (Ping timeout: 246 seconds)
02:16:28  * chris_99quit (Quit: Ex-Chat)
02:20:00  * plumbquit (Ping timeout: 244 seconds)
02:20:39  * jasnelljoined
02:20:59  * plumbjoined
02:23:57  * iarnajoined
02:39:57  * Left_Turnjoined
02:49:49  * plumbquit (Ping timeout: 245 seconds)
02:50:39  * plumbjoined
02:55:03  * piscisaureusquit (Quit: ~ Trillian Astra - www.trillian.im ~)
02:57:10  * thlorenzjoined
02:57:10  * Fishrock123quit (Quit: Leaving...)
02:59:33  * andrehjrquit (Quit: Computer has gone to sleep.)
03:01:51  * thlorenzquit (Ping timeout: 244 seconds)
03:05:44  * jasnellquit (Quit: Leaving...)
03:10:41  * jreyno40quit (Quit: jreyno40)
03:11:25  * a_lequit (Remote host closed the connection)
03:13:02  * jreyno40joined
03:18:47  * jgiquit (Quit: jgi)
03:23:04  * WalrusPonyquit (Read error: Connection reset by peer)
03:28:22  * WalrusPonyjoined
03:34:37  * Tux64changed nick to Tux64_
03:49:30  * WalrusPonyquit (Read error: Connection reset by peer)
04:00:01  * jreyno40part
04:07:38  * stagasquit (Ping timeout: 272 seconds)
04:13:00  * Left_Turnquit (Remote host closed the connection)
04:18:57  * a_lejoined
04:29:57  * iarnaquit (Remote host closed the connection)
04:37:03  * abraxas_joined
04:41:52  * abraxas_quit (Ping timeout: 240 seconds)
04:41:54  * wolfeidauquit (Remote host closed the connection)
04:42:56  * wolfeidaujoined
04:46:16  * thlorenzjoined
04:47:22  * wolfeidauquit (Ping timeout: 240 seconds)
04:51:03  * thlorenzquit (Ping timeout: 276 seconds)
05:01:03  <plumb>so is it correct to say that libuv is using multithreading?
05:02:03  <plumb>but it abstracts that into an event based interface
05:02:42  <plumb>so that someone might use something like node.js to event based way without need to handle threading?
05:06:13  <plumb>and for other tasks libuv uses system calls through something like epoll... which stacks work into file descriptors that result in system level abstraction that yields and event based interface?
05:36:53  * iarnajoined
05:40:52  * wolfeidaujoined
05:41:32  * plumbquit (Ping timeout: 245 seconds)
05:42:39  * plumbjoined
05:47:05  * thlorenzjoined
05:51:22  * thlorenzquit (Ping timeout: 240 seconds)
05:58:15  * plumbquit (Ping timeout: 264 seconds)
05:59:07  * plumbjoined
06:06:35  <nathan7>plumb: the threading for filesystem interaction is an implementation detail, only there because there is no proper async file I/O on Linux
06:06:56  <nathan7>plumb: (well, on all the unices)
06:09:41  * rmgquit (Remote host closed the connection)
06:11:48  * rmgjoined
06:16:04  * importantshockquit (Remote host closed the connection)
06:16:38  * importantshockjoined
06:20:49  <plumb>nathan7: I'm having a hard time understanding how non-blocking functionality is provided without threads
06:20:53  * importantshockquit (Ping timeout: 252 seconds)
06:21:31  <plumb>nathan7: I'm not a kernel hacker and I tried understand by reading about epoll's create and ctrl functionality
06:22:07  <plumb>but I don't see where it introduces non-blocking functionality
06:22:18  <nathan7>plumb: you have a pool of fd's
06:22:25  * a_lequit (Read error: Connection reset by peer)
06:22:44  <nathan7>plumb: you can block on *all* of the fds at once, if any one of them becomes readable/writable, it returns
06:22:58  <nathan7>plumb: so the main thread blocks while there is nothing to do
06:23:04  * a_lejoined
06:24:02  <plumb>nathan7: how is the fd different from a thread?
06:24:37  <nathan7>plumb: it's an open file
06:24:48  <nathan7>plumb: there is only one thread
06:25:08  <nathan7>plumb: (if we ignore the thread-juggling that occurs because file I/O is fucked on every OS)
06:25:31  <nathan7>plumb: an fd can be a socket, or a pipe, or a number of other things
06:25:57  <plumb>nathan7: is it correct to think of it as a record of the state of the socket or pipe?
06:26:13  <nathan7>plumb: sort of, it's a reference to that state
06:26:17  <nathan7>plumb: it's literally just an integer
06:26:27  <nathan7>plumb: in what you actually pass around
06:26:59  <nathan7>plumb: (like, in your average unix process, stdin is 0, stdout is 1, stderr is 2, other stuff like open files after that)
06:27:34  <nathan7>plumb: epoll is basically "here's a thousand sockets. tell me if anything interesting happens."
06:28:13  <plumb>nathan7: what variables might determine limits on the state referenced by fds?
06:29:06  <nathan7>plumb: ?
06:31:23  <plumb>nathan7: maybe my questions is -is the amount of io activity relative to the number of file descriptors created?
06:32:52  <plumb>maybe my questions are terrible
06:32:57  <nathan7>plumb: the amount of file descriptors is directly equivalent to the amount of open files + sockets
06:33:29  <nathan7>plumb: and generally, yes, the amount of I/O activity generally grows with the amount of connections or files one has open
06:34:40  <plumb>nathan7: where is the internal state of each fd stored?
06:34:45  <nathan7>plumb: in kernelspace
06:35:39  <nathan7>plumb: it's a file handle
06:35:43  <nathan7>plumb: a number for a file handle
06:35:48  <nathan7>plumb: the terms are practically interchangeable
06:37:11  <nathan7>open() takes a filename and returns an fd, accept() takes a listening socket fd and returns a socket fd for the next new connection, etc
06:39:09  <nathan7>anyway, I'm going to sleep, I have to convince my body to do this NYC timezone thing
06:39:20  <plumb>nathan7: thank you
06:45:27  * a_lequit (Remote host closed the connection)
07:04:11  * iarnaquit (Remote host closed the connection)
07:06:26  * iarnajoined
07:10:39  * iarnaquit (Ping timeout: 245 seconds)
07:17:21  * iarnajoined
07:31:57  * plumbquit (Ping timeout: 245 seconds)
07:32:50  * plumbjoined
07:35:55  * thlorenzjoined
07:40:23  * thlorenzquit (Ping timeout: 245 seconds)
07:42:22  * plumbquit (Ping timeout: 245 seconds)
07:43:09  * plumbjoined
07:47:40  * iarnaquit (Remote host closed the connection)
07:48:06  * qard_quit (Remote host closed the connection)
08:14:56  * abraxas_joined
08:19:29  * abraxas_quit (Ping timeout: 246 seconds)
08:27:11  * FROGGS[mobile]joined
08:31:02  * ovef_quit (Ping timeout: 246 seconds)
08:31:19  * ovefjoined
08:42:28  * SplinterOfChaosquit (Ping timeout: 245 seconds)
08:49:09  * davijoined
09:24:41  * thlorenzjoined
09:29:27  * thlorenzquit (Ping timeout: 264 seconds)
09:41:48  * seishunjoined
09:43:19  * FROGGS[mobile]quit (Ping timeout: 255 seconds)
09:43:33  * FROGGS[mobile]joined
10:03:51  * abraxas_joined
10:08:34  * abraxas_quit (Ping timeout: 245 seconds)
10:13:52  * plumbquit (Ping timeout: 240 seconds)
10:14:45  * plumbjoined
10:19:24  * roxlujoined
10:19:25  * rendarjoined
10:32:22  * daviquit (Ping timeout: 240 seconds)
10:41:08  * chris_99joined
10:42:03  * plumbquit (Ping timeout: 276 seconds)
10:42:21  * plumbjoined
10:43:09  * FROGGS[mobile]quit (Ping timeout: 245 seconds)
10:43:22  * FROGGS[mobile]joined
10:49:58  * crispyzealjoined
10:51:47  * plumbquit (Ping timeout: 256 seconds)
10:52:38  * plumbjoined
11:00:58  * Left_Turnjoined
11:13:30  * thlorenzjoined
11:18:27  * thlorenzquit (Ping timeout: 276 seconds)
11:21:28  * stagasjoined
11:21:37  * plumbquit (Quit: Lost terminal)
11:25:43  * tarrudajoined
11:42:54  * FROGGS[mobile]2joined
11:42:56  * FROGGS[mobile]2quit (Remote host closed the connection)
11:47:21  * FROGGS[mobile]quit (Ping timeout: 264 seconds)
11:52:47  * abraxas_joined
11:57:28  * abraxas_quit (Ping timeout: 245 seconds)
12:14:17  * thlorenzjoined
12:18:49  * thlorenzquit (Ping timeout: 244 seconds)
12:22:43  * reqsharkquit (Quit: Be back later ...)
13:16:43  * Tux64_changed nick to Tux64
13:28:37  * tarrudaquit (Read error: Connection reset by peer)
13:32:10  * thlorenzjoined
13:36:50  * thlorenzquit (Ping timeout: 244 seconds)
13:41:43  * abraxas_joined
13:46:59  * abraxas_quit (Ping timeout: 265 seconds)
14:35:16  * a_lejoined
14:47:48  * rmgquit (Remote host closed the connection)
14:50:21  * a_lequit (Remote host closed the connection)
14:54:32  * Fishrock123joined
15:21:02  * thlorenzjoined
15:25:56  * thlorenzquit (Ping timeout: 272 seconds)
15:30:48  * abraxas_joined
15:30:59  * crispyzealquit (Quit: zzz)
15:35:14  * abraxas_quit (Ping timeout: 245 seconds)
15:41:32  * crispyzealjoined
16:03:26  * mkrufkyjoined
16:10:41  * lance|afkchanged nick to lanceball
17:05:13  * stagasquit (Ping timeout: 255 seconds)
17:08:03  * thlorenzjoined
17:08:41  * importantshockjoined
17:12:47  * SergeiRNDjoined
17:19:42  * abraxas_joined
17:23:53  * darthtuttlejoined
17:24:24  * abraxas_quit (Ping timeout: 276 seconds)
17:25:22  * dshaw_joined
17:26:20  * andrehjrjoined
17:27:55  * SplinterOfChaosjoined
17:33:33  * andrehjrquit (Quit: ["Textual IRC Client: www.textualapp.com"])
17:34:17  <darthtuttle>so is udp connect() still right out for libuv?
17:38:54  * Fishrock123quit (Quit: Leaving...)
17:45:35  * AvianFlujoined
17:50:43  * rmgjoined
17:55:10  * rmgquit (Ping timeout: 244 seconds)
17:57:27  <saghul>darthtuttle: yes, it shouldn't be too hard to add though
17:59:44  <darthtuttle>yea, I'm going to try to patch it in, just seems like it will never get merged regardless.
18:00:15  <darthtuttle>I'm hoping to get ICMP errors on UDP passed up the stack
18:04:05  <darthtuttle>between libuv and node there's a couple of requests for udp connect and passing ICMP errors on UDP up the stack but the answer seems to be "no, we won't do that"
18:08:06  * roxluquit (Quit: My Mac has gone to sleep. ZZZzzz…)
18:08:31  * dshaw_quit (Quit: Leaving.)
18:16:48  * chris_99quit (Remote host closed the connection)
18:18:46  * chris_99joined
18:28:42  * SergeiRNDquit (Quit: Leaving.)
18:37:05  * brsonjoined
18:41:20  * thlorenzquit (Remote host closed the connection)
18:43:03  * iarnajoined
19:00:15  * roxlujoined
19:03:56  * shrijoined
19:08:23  * abraxas_joined
19:12:35  * abraxas_quit (Ping timeout: 246 seconds)
19:25:45  * stagasjoined
19:29:13  * shriquit (Ping timeout: 246 seconds)
19:41:54  * thlorenzjoined
19:43:25  * iarnaquit (Read error: Connection reset by peer)
19:43:59  * iarnajoined
19:46:32  * thlorenzquit (Ping timeout: 246 seconds)
19:51:14  * importantshockquit (Remote host closed the connection)
19:51:50  * importantshockjoined
19:52:45  * dshaw_joined
19:55:52  * importantshockquit (Ping timeout: 240 seconds)
19:57:07  * importantshockjoined
19:58:20  * thlorenzjoined
20:07:31  * mikolalysenkoquit
20:07:43  * a_lejoined
20:07:57  * mikolalysenkojoined
20:08:38  * a_lequit (Remote host closed the connection)
20:32:18  <crispyzeal>saghul, just posted to the google group about the windows binaries issue :D
20:34:07  * a_lejoined
20:46:54  * stagasquit (Ping timeout: 245 seconds)
20:57:13  * abraxas_joined
20:58:45  * dshaw_quit (Quit: Leaving.)
21:01:55  * abraxas_quit (Ping timeout: 255 seconds)
21:20:01  * qard_joined
21:28:14  * rmgjoined
21:33:03  * rmgquit (Ping timeout: 264 seconds)
21:45:03  * sandr8quit (Ping timeout: 264 seconds)
21:54:10  * sandr8joined
21:58:43  * cnd_quit
21:59:01  * cnd_joined
22:04:12  * dshaw_joined
22:04:34  * iarnaquit (Remote host closed the connection)
22:21:03  * AvianFluquit (Ping timeout: 264 seconds)
22:28:26  * brsonquit (Quit: leaving)
22:33:44  * thlorenzquit (Remote host closed the connection)
22:37:25  * FROGGS[mobile]joined
22:42:33  * thlorenzjoined
22:43:00  * crispyzealquit (Quit: zzz)
22:43:51  * thlorenzquit (Read error: Connection reset by peer)
22:44:19  * thlorenzjoined
22:44:47  * thlorenzquit (Read error: Connection reset by peer)
22:45:19  * thlorenzjoined
22:45:55  * crispyzealjoined
22:46:12  * abraxas_joined
22:47:42  * crispyzealquit (Client Quit)
22:49:47  * thlorenzquit (Ping timeout: 252 seconds)
22:50:42  * abraxas_quit (Ping timeout: 244 seconds)
22:57:42  * crispyzealjoined
23:10:30  * seishunquit (Remote host closed the connection)
23:10:36  * crispyzealquit (Quit: zzz)
23:11:14  * seishunjoined
23:14:35  * dshaw_quit (Quit: Leaving.)
23:17:34  * chris_99quit (Ping timeout: 244 seconds)
23:18:32  * chris_99joined
23:31:02  * jreyno40joined
23:31:07  * seishunquit (Ping timeout: 256 seconds)
23:46:08  * thlorenzjoined
23:50:50  * thlorenzquit (Ping timeout: 246 seconds)
23:54:24  * Ralithquit (Ping timeout: 245 seconds)