Peter Keller | 12 May 09:54 2010
Picon

edge/level trigger in epoll backend

Hello,

I'm seeing a problem in my codes where I have many clients using the
multiplexer with nonblocking i/o all connected to a master process also
using the multiplexer and nonblocking i/o and the master process only
wants to serve one client for a very long time, then switch to another,
and serve it a very long time. Meanwhile everyone is ready for work and
should be marked as ready in the file descriptor set.

This makes me wonder, is IOLib using EPOLLET to do edge triggered I/O
in the linux backend?  If so, I think that's not what most people will
want since if data is left in the input/output buffers due to a short
read/write, you'll never be notified of stuff left there. I want level
triggered I/O to force pumping of the data regardless of what happens.

Is there a means in IOLib I can control the edge/levelness of the backend?

Thank you.

-pete

Peter Keller | 14 May 21:45 2010
Picon

Re: Introductory tcp client/server examples

On Fri, May 14, 2010 at 03:38:16PM -0400, Faré wrote:
> is there a git repository or some other place to download the latest
> version of your iolib examples? Thanks!

Sure, the latest version is always under "Live Sources" on this web page:

http://common-lisp.net/project/iolib/download.shtml

The repository mentioned there is:

git clone git://common-lisp.net/projects/iolib/iolib.git

Generally, if there is some patches/enhancements for the example codes
or the tutorial, send it to this list, but I'll take care of them.

If you use clbuild and whatnot to manage your lisp environment then
./clbuild install iolib
will get you the latest revision with the tutorial examples and document.

I welcome additional example codes and patches and will help document
them into the tutorial. Any bugs or changes to IOLib itself should be
directed to Stelian Ionescu.

Thank you!

-pete

Faré | 14 May 21:38 2010
Picon

Re: Introductory tcp client/server examples

Peter,

is there a git repository or some other place to download the latest
version of your iolib examples? Thanks!

[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ]
Truth is stranger than fiction, but it is because Fiction is obliged to
stick to possibilities. Truth isn't. — Mark Twain

Stelian Ionescu | 15 May 11:00 2010
Picon

New patches: 14-May-2010


commit 5bdf5b99fbfcdf805241ce858e57d83a5ef7b3f4
Author: Stelian Ionescu <sionescu <at> cddr.org>
Date:   Fri May 14 23:07:43 2010 +0800

    Don't restart ioctl(2) calls automatically

 src/syscalls/ffi-functions-unix.lisp |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit f1942709909f64be7b61ead753176b4bd28b3fe9
Author: Stelian Ionescu <sionescu <at> cddr.org>
Date:   Fri May 14 18:53:43 2010 +0800

    The REQUEST parameter of ioctl(2) is an unsigned int not a signed int

 src/syscalls/ffi-functions-unix.lisp |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit 34507ba419bc214c9d8201ef7724224fb6284f4e
Author: Stelian Ionescu <sionescu <at> cddr.org>
Date:   Thu May 13 23:11:51 2010 +0800

    Stop using :NO-ERROR in HANDLER-CASE forms: it's cool but generates slow code

 src/streams/gray/io-helpers.lisp |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)

commit e837cf7321cff8e124042af6e4603c4f1df4aebb
Author: Stelian Ionescu <sionescu <at> cddr.org>
(Continue reading)

Stelian Ionescu | 16 May 11:00 2010
Picon

New patches: 15-May-2010


commit ff6853832b3b2aa755ee3f2927e0276ac53b2038
Author: Stelian Ionescu <sionescu <at> cddr.org>
Date:   Sun May 16 02:08:30 2010 +0800

    Fix UTF8-EXTRA-BYTES on non-Unicode Lisps

 src/syscalls/unix-syscall-path-strings.lisp |   16 +++++++++-------
 1 files changed, 9 insertions(+), 7 deletions(-)

commit 766b32e310bb44d93709c2ad3d4f0d49ffe86638
Author: Stelian Ionescu <sionescu <at> cddr.org>
Date:   Sun May 16 01:37:03 2010 +0800

    Style changes

 src/syscalls/ffi-wrappers-unix.lisp |   14 ++++++--------
 1 files changed, 6 insertions(+), 8 deletions(-)

commit 37be2f44c685f1d51d8678854c93d91319907862
Author: Stelian Ionescu <sionescu <at> cddr.org>
Date:   Sun May 16 01:34:52 2010 +0800

    Better waitpid(2)

 src/syscalls/ffi-functions-unix.lisp |    7 +++++-
 src/syscalls/ffi-types-unix.lisp     |   28 +++++++++++++++++++++++-
 src/syscalls/ffi-wrappers-unix.lisp  |   38 ++++++++++++++++++++++++++++++++++
 3 files changed, 70 insertions(+), 3 deletions(-)

(Continue reading)

Nikolay V. Razbegaev | 17 May 20:24 2010
Picon

Running io handler periodically

Hello!

Is it possible to make io handler, that will be running periodically,
i.e. not every time when io will be possible? `iomux:set-io-handler'
have `:timeout' &key parameter, but, as i understand, it is poll
timeout.

Of course I cat call `sleep' inside io handler body, but it will be
freeze all other handlers in this thread too. So, can I run
`iomux:event-base' io handler periodically w/o `sleep' dirty hack?

Thank you.

Nikolay.

Stelian Ionescu | 20 May 11:00 2010
Picon

New patches: 19-May-2010


commit 8b4239e31146ea2b6603fe7a9e154955cb020dd8
Author: Francois-Rene Rideau <fare <at> tunes.org>
Date:   Sun May 16 10:06:16 2010 -0400

    Export a few recently added symbols

 src/syscalls/pkgdcl.lisp |   21 +++++++++++++++++++++
 1 files changed, 21 insertions(+), 0 deletions(-)

commit b8f5e33fdb3fb58c8fac565287264c6d0790426b
Author: Stelian Ionescu <sionescu <at> cddr.org>
Date:   Wed May 19 20:33:40 2010 +0800

    Allow DEFSYSCALL and DEFCFUN* to receive the syscall name as a string

 src/sockets/bsd.lisp    |   40 ++++++++++++++++++++--------------------
 src/syscalls/early.lisp |   33 +++++++++++++--------------------
 2 files changed, 33 insertions(+), 40 deletions(-)

An updated tarball of IOLib's source can be downloaded here:
http://common-lisp.net/project/iolib/files/snapshots/iolib-20100519.tar.gz

Gitweb URL:
http://repo.or.cz/w/iolib.git

Stelian Ionescu | 20 May 11:13 2010

Re: Running io handler periodically

On Mon, 2010-05-17 at 22:24 +0400, Nikolay V. Razbegaev wrote:
> Hello!
> 
> Is it possible to make io handler, that will be running periodically,
> i.e. not every time when io will be possible? `iomux:set-io-handler'
> have `:timeout' &key parameter, but, as i understand, it is poll
> timeout.
> 
> Of course I cat call `sleep' inside io handler body, but it will be
> freeze all other handlers in this thread too. So, can I run
> `iomux:event-base' io handler periodically w/o `sleep' dirty hack?
> 

You can add a timer: the function is iolib.multiplex:add-timer

--

-- 
Stelian Ionescu a.k.a. fe[nl]ix
Quidquid latine dictum sit, altum videtur.
http://common-lisp.net/project/iolib
On Mon, 2010-05-17 at 22:24 +0400, Nikolay V. Razbegaev wrote:
> Hello!
> 
> Is it possible to make io handler, that will be running periodically,
> i.e. not every time when io will be possible? `iomux:set-io-handler'
> have `:timeout' &key parameter, but, as i understand, it is poll
> timeout.
> 
> Of course I cat call `sleep' inside io handler body, but it will be
(Continue reading)

Nikolay V. Razbegaev | 20 May 20:35 2010
Picon

Re: Running io handler periodically

Stelian Ionescu <sionescu <at> cddr.org> writes:

> On Mon, 2010-05-17 at 22:24 +0400, Nikolay V. Razbegaev wrote:
>> Hello!
>> 
>> Is it possible to make io handler, that will be running periodically,
>> i.e. not every time when io will be possible? `iomux:set-io-handler'
>> have `:timeout' &key parameter, but, as i understand, it is poll
>> timeout.
>> 
>> Of course I cat call `sleep' inside io handler body, but it will be
>> freeze all other handlers in this thread too. So, can I run
>> `iomux:event-base' io handler periodically w/o `sleep' dirty hack?
>> 
>
> You can add a timer: the function is iolib.multiplex:add-timer

Thank you! I guess, that I missed it some how, then I looked for the
corresponding function/method in iomux package.

Stelian Ionescu | 25 May 11:00 2010
Picon

New patches: 24-May-2010


commit 6f3995a954af321f9f1a2260ab28cb5b41c7253c
Author: Stelian Ionescu <sionescu <at> cddr.org>
Date:   Tue May 25 13:18:23 2010 +0800

    Add class MUFFLED-SOURCE-FILE

    Make CL-SOURCE-FILE inherit MUFFLED-SOURCE-FILE and remote UTF-8 usage
    around file compilation.

 src/base/asdf.lisp   |   25 ++++++++++++++++---------
 src/base/pkgdcl.lisp |    2 +-
 src/iolib.base.asd   |    2 +-
 3 files changed, 18 insertions(+), 11 deletions(-)

commit 1d6fad2a8e174d9dbe43a339c07d5b7ce76ad76c
Author: Stelian Ionescu <sionescu <at> cddr.org>
Date:   Tue May 25 13:07:18 2010 +0800

    Remove UTF-8 characters from sources

 src/os/os-unix.lisp           |    2 +-
 src/sockets/base-sockets.lisp |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 776d979daf9213d6807f261c14f591b23423bd03
Author: Stelian Ionescu <sionescu <at> cddr.org>
Date:   Tue May 25 12:52:39 2010 +0800

    Fix WRAP-BODY-FOR-RETURN-STAR for (SETF <FOO>) functions
(Continue reading)


Gmane