Re: [PATCH] Add current-suspendable-io-status parameter

2019-05-18 Thread Mark H Weaver
Hi Nala, Nala Ginrut writes: > On Thu, May 16, 2019 at 8:59 AM Mark H Weaver wrote: > >> What about when we write something more structured, such as writing a >> large S-expression using 'write', or serializing XML from SXML. In >> those cases, it's even more obvious that we have no idea how m

Re: [PATCH] Add current-suspendable-io-status parameter

2019-05-17 Thread Nala Ginrut
Hi Mark! I need some time to think about all the situations in front of us. And here's a quick reply to one of your questions: On Thu, May 16, 2019 at 8:59 AM Mark H Weaver wrote: > What about when we write something more structured, such as writing a > large S-expression using 'write', or seri

Re: [PATCH] Add current-suspendable-io-status parameter

2019-05-15 Thread Mark H Weaver
Hi Nala, Nala Ginrut writes: > I think your approach works for the cases which use put-bytevector* directly. > Are you assuming the server-core only handles suspendable-port with > put-bytevector in http-read or http-write? > If so, then your approach is not enough. If you're not using 'put-byt

Re: [PATCH] Add current-suspendable-io-status parameter

2019-05-15 Thread Nala Ginrut
Similar, but in Guile, you don't have to care about if it's blocking and schedule it by yourself, while you have to care about it explicitly in C. 于 2019年5月15日周三 20:10写道: > On Wed, May 15, 2019 at 07:25:37PM +0800, Nala Ginrut wrote: > > hi Tomas! > > For Guile, if you enabled suspendable-port,

Re: [PATCH] Add current-suspendable-io-status parameter

2019-05-15 Thread tomas
On Wed, May 15, 2019 at 07:25:37PM +0800, Nala Ginrut wrote: > hi Tomas! > For Guile, if you enabled suspendable-port, you may schedule the > blocking task captured by delimited continuation. > And use I/O multiplex mechanism (say, select or epoll) for monitoring > the file descriptor (or port). S

Re: [PATCH] Add current-suspendable-io-status parameter

2019-05-15 Thread tomas
On Wed, May 15, 2019 at 12:25:05PM +0100, Chris Vine wrote: > On Wed, 15 May 2019 12:09:19 +0200 > wrote: > > Sorry for this possibly dumb question [...] > With guile-2.2/3.0, you install suspendable ports and parameterize > current-read-waiter and/or current-write-waiter. There is an example >

Re: [PATCH] Add current-suspendable-io-status parameter

2019-05-15 Thread Nala Ginrut
hi Tomas! For Guile, if you enabled suspendable-port, you may schedule the blocking task captured by delimited continuation. And use I/O multiplex mechanism (say, select or epoll) for monitoring the file descriptor (or port). If there's no available byte at all, then you would never be mentioned by

Re: [PATCH] Add current-suspendable-io-status parameter

2019-05-15 Thread Chris Vine
On Wed, 15 May 2019 12:09:19 +0200 wrote: > On Mon, May 13, 2019 at 06:54:38PM +0800, Nala Ginrut wrote: > > Hi folks! > > Here's a patch to add current-suspendable-io-status: > > Its result is a pair: (finished-bytes . rest-bytes) > > Sorry for this possibly dumb question, but... is there a way

Re: [PATCH] Add current-suspendable-io-status parameter

2019-05-15 Thread tomas
On Mon, May 13, 2019 at 06:54:38PM +0800, Nala Ginrut wrote: > Hi folks! > Here's a patch to add current-suspendable-io-status: > Its result is a pair: (finished-bytes . rest-bytes) Sorry for this possibly dumb question, but... is there a way to be non-blocking even if there are no readable/writab

Re: [PATCH] Add current-suspendable-io-status parameter

2019-05-15 Thread Nala Ginrut
hi Mark! I think your approach works for the cases which use put-bytevector* directly. Are you assuming the server-core only handles suspendable-port with put-bytevector in http-read or http-write? If so, then your approach is not enough. When the users enabled suspendable-port, every I/O operation

Re: [PATCH] Add current-suspendable-io-status parameter

2019-05-14 Thread Mark H Weaver
Hi Nala, Nala Ginrut writes: > On Tue, May 14, 2019 at 7:01 AM Mark H Weaver wrote: >> I guess what you want is the ability to see incremental reports on the >> progress of your large I/O operations. Is that right? If we are going >> to add an API for this, it needs to be reliable, and always

Re: [PATCH] Add current-suspendable-io-status parameter

2019-05-13 Thread Nala Ginrut
Hi Mark! Thanks for so patient reply! On Tue, May 14, 2019 at 7:01 AM Mark H Weaver wrote: > I guess what you want is the ability to see incremental reports on the > progress of your large I/O operations. Is that right? If we are going > to add an API for this, it needs to be reliable, and alw

Re: [PATCH] Add current-suspendable-io-status parameter

2019-05-13 Thread Mark H Weaver
Hello again, Previously I wrote: > I also have doubts about the utility of the information provided. > 'start' seems completely irrelevant, since it merely indicates the > position within the read/write buffer. It's easier to make a case that > 'count' might be relevant, but it's not a reliable i

Re: [PATCH] Add current-suspendable-io-status parameter

2019-05-13 Thread Mark H Weaver
Hi Nala, Nala Ginrut writes: > Here's a patch to add current-suspendable-io-status: > Its result is a pair: (finished-bytes . rest-bytes) > > This is useful for designing a proper scheduler algorithm for > suspendable I/O operations. > For example, the server-core based on delimited-continuation

Re: [PATCH] Add current-suspendable-io-status parameter

2019-05-13 Thread Nala Ginrut
BTW, the patch is based on the latest stable-2.2 branch. On Mon, May 13, 2019 at 6:54 PM Nala Ginrut wrote: > > Hi folks! > Here's a patch to add current-suspendable-io-status: > Its result is a pair: (finished-bytes . rest-bytes) > > This is useful for designing a proper scheduler algorithm for

[PATCH] Add current-suspendable-io-status parameter

2019-05-13 Thread Nala Ginrut
Hi folks! Here's a patch to add current-suspendable-io-status: Its result is a pair: (finished-bytes . rest-bytes) This is useful for designing a proper scheduler algorithm for suspendable I/O operations. For example, the server-core based on delimited-continuation can compute a priority based on