Re: [Libevent-users] libevent 1.2

2006-10-17 Thread Jarrod Roberson
On 10/17/06, Scott Lamb <[EMAIL PROTECTED]> wrote:
On Oct 17, 2006, at 12:19 PM, Rhythmic Fistman wrote:> On 10/17/06, Scott Lamb <[EMAIL PROTECTED]> wrote:>> On Oct 17, 2006, at 11:08 AM, Rhythmic Fistman wrote:
>> > That's funny, there doesn't seem to be a self-pipe-trick>> > implementation in lib-evt... how do you get by without it? There is, although it uses a socketpair() instead of a pipe().
>> Ah, I was grepping "trick". It looks like it's used internally in> the signal style implementations - so how does a multithreaded> app get thread_dispatch to return when it's time to exit?
libevent doesn't have any interthread communication. But you canlayer stuff on top of it - look through the archives for a coupleposts by Andrew Danforth.Message-ID:<
[EMAIL PROTECTED]>Date: Thu, 5 Oct 2006 21:42:35 -0400From: "Andrew Danforth" <[EMAIL PROTECTED]>References: <
[EMAIL PROTECTED]>Subject: [Libevent-users] Re: Passing data between event loops inmultithreaded apps
and his code at I've been thinking that a fancier threading system might performbetter, but I still haven't found the time to write and benchmark
different approaches.--Scott Lamb ___Libevent-users mailing list
Libevent-users@monkey.orghttp://monkey.org/mailman/listinfo/libevent-users
___
Libevent-users mailing list
Libevent-users@monkey.org
http://monkey.org/mailman/listinfo/libevent-users


[Libevent-users] Can't get event-test.c to work on Mac OS X 10.4.8

2006-10-05 Thread Jarrod Roberson
I got it to compile under XCode, and run, but I can't get it to responde to any events?Here is the code./* === */#include 
#include #include #include #include #include #include #include #include <
string.h>#include #include // C librariesextern "C"{// libevent#include }/* I had to make some changes to get this to compile under C++
 the ... short event, ... argument and the ... struct event *ev... clashed in some way so I had to rename them. Also struct event *ev = arg would not compile, once I added the reinterpret_cast<>() / static_cast<>(), it compiles but now it appears that it doesn't do anything :-)
  this was originally void fifo_read(int fd, short event, void *arg) */void fifo_read(int fd, short e, void *arg){    char buf[255];    int len;    // this was originally    // struct event *ev = arg;
    //struct event *ev = reinterpret_cast(arg);    struct event *ev = static_cast(arg);        // reschedule this event    event_add(ev, NULL);    // this was originally
    // fprintf(stderr, "fifo_read called with fd: %d, event: %d, arg: %p\n", fd, event, arg);    fprintf(stdout, "fifo_read called with fd: %d, event: %d, arg: %p\n", fd, e, arg);        len = read(fd, buf, sizeof(buf) -1);
        if (len == -1)    {    perror("read");    return;    }    else if (len == 0)    {    fprintf(stderr, "Connection closed\n");    return;
    }        buf[len] = '\0';        fprintf(stdout, "Read: %s\n", buf);}int main (int argc, char * const argv[]) {        struct event evfifo;    struct stat st;    char *fifo = "
event.fifo";    int socket;        if (lstat(fifo, &st) == 0)    {    if((st.st_mode & S_IFMT) == S_IFREG)    {    errno = EEXIST;    perror("lstat");
    exit(1);    }    }        unlink(fifo);    if (mkfifo (fifo, 0600) == -1)    {    perror("mkfifo");    exit(1);    }        socket = open(fifo, O_RDONLY | O_NONBLOCK, 0);
        if (socket == -1)    {    perror("open");    exit(1);    }        fprintf(stderr, "Write data to %s\n", fifo);        // Initialize the event library
    event_init();        // Initialize one event    event_set(&evfifo, socket, EV_READ, fifo_read, &evfifo);        // Add it to the active events, without a timeout    event_add(&evfifo, NULL);
        event_dispatch();        return 0;}/* === */
___
Libevent-users mailing list
Libevent-users@monkey.org
http://monkey.org/mailman/listinfo/libevent-users