[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-users] readline blocks threads
From: |
Shawn Rutledge |
Subject: |
Re: [Chicken-users] readline blocks threads |
Date: |
Wed, 5 Mar 2008 23:50:38 -0700 |
On Tue, Mar 4, 2008 at 4:22 PM, Graham Fawcett <address@hidden> wrote:
> Just curious, does the nbstdin egg help at all? I know it helps when
> I'm running a REPL inside a Web app.
Thanks for the suggestion. The relevant part of that seems to be this:
int val = fcntl(fd, F_GETFL, 0);
if(val == -1) return(0);
return(fcntl(fd, F_SETFL, val | O_NONBLOCK) != -1);
so I tried doing that myself:
int ufd, sfd;
dbus_connection_get_unix_fd(conn, &ufd);
dbus_connection_get_socket(conn, &sfd);
printf(\"unix FD %d, socket %d\\n\", ufd, sfd);
int val = fcntl(sfd, F_GETFL, 0);
printf(\"existing flags: 0x%X\\n\", val);
if(val != -1)
printf(\"fctntl returns %d\\n\",
fcntl(sfd, F_SETFL, val | O_NONBLOCK));
out of which I see
unix FD 4, socket 4
existing flags: 0x802
fctntl returns 0
so according to the existing flags gotten from F_GETFL, it's already a
non-blocking fd. lsof gives me this
csi 15457 rutledge 4u unix 0xd935e860 292124 socket
So they're using Unix sockets. It's already non-blocking, so F_SETFL
doesn't change the behavior.
Re: [Chicken-users] readline blocks threads, Jim Ursetto, 2008/03/04
- Re: [Chicken-users] readline blocks threads, Shawn Rutledge, 2008/03/04
- Re: [Chicken-users] readline blocks threads, Elf, 2008/03/04
- Re: [Chicken-users] readline blocks threads, Shawn Rutledge, 2008/03/04
- Re: [Chicken-users] readline blocks threads, Graham Fawcett, 2008/03/04
- Re: [Chicken-users] readline blocks threads,
Shawn Rutledge <=
- Re: [Chicken-users] readline blocks threads, Elf, 2008/03/06
- Re: [Chicken-users] readline blocks threads, Shawn Rutledge, 2008/03/06
Re: [Chicken-users] readline blocks threads, felix winkelmann, 2008/03/05